# HG changeset patch
# User Michael Stahl <mst@openoffice.org>
# Date 1304617605 0
# Node ID 9c18c294f521891024732e12972d5183f7256eac
# Parent  cadf9cfda5b176a51d8f9f482a714bbe0c65f4e7
rtftok01: add rtfmodel.xml

diff --git a/writerfilter/source/rtftok/rtfmodel.xml b/writerfilter/source/rtftok/rtfmodel.xml
new file mode 100644
--- /dev/null
+++ b/writerfilter/source/rtftok/rtfmodel.xml
@@ -0,0 +1,7627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- THIS FILE IS GENERATED BY makemodel.sh! -->
+<out xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:fn="http://www.w3.org/2005/xpath-functions">
+  <define name="letter">
+    <!--a..z | A..Z-->
+    <!--a..z | A..Z-->
+    <!--a..z | A..Z-->
+    <token>a..z | A..Z</token>
+  </define>
+  <define name="control name">
+    <!--<letter>+-->
+    <!--<letter>+-->
+    <!--(<letter>+)-->
+    <one-or-more>
+      <ref name="letter"/>
+    </one-or-more>
+  </define>
+  <define name="digit">
+    <!--0..9-->
+    <!--0..9-->
+    <!--0..9-->
+    <token>0..9</token>
+  </define>
+  <define name="parameter">
+    <!--'-'? <digit>+-->
+    <!--'-'? <digit>+-->
+    <!--('-'?)(<digit>+)-->
+    <optional>
+      <literal>-</literal>
+    </optional>
+    <one-or-more>
+      <ref name="digit"/>
+    </one-or-more>
+  </define>
+  <define name="control word entity">
+    <!--'\' <control name><parameter>?-->
+    <!--'\' <control name><parameter>?-->
+    <!--'\'<control name>(<parameter>?)-->
+    <literal>\</literal>
+    <ref name="control name"/>
+    <optional>
+      <ref name="parameter"/>
+    </optional>
+  </define>
+  <define name="File">
+    <!--'{' <header> <document> '}'-->
+    <!--'{' <header> <document> '}'-->
+    <!--'{'<header><document>'}'-->
+    <literal>{</literal>
+    <ref name="header"/>
+    <ref name="document"/>
+    <literal>}</literal>
+  </define>
+  <define name="header">
+    <!--\rtf1 \fbidis? <character set> <from>? <deffont> <deflang> <fonttbl>? <filetbl>? <colortbl>? <stylesheet>? <stylerestrictions>? <listtables>? <revtbl>? <rsidtable>? <mathprops>? <generator>?-->
+    <!--\rtf1 \fbidis? <character set> <from>? <deffont> <deflang> <fonttbl>? <filetbl>? <colortbl>? <stylesheet>? <stylerestrictions>? <listtables>? <revtbl>? <rsidtable>? <mathprops>? <generator>?-->
+    <!--\rtf1(\fbidis?)<character set>(<from>?)<deffont><deflang>(<fonttbl>?)(<filetbl>?)(<colortbl>?)(<stylesheet>?)(<stylerestrictions>?)(<listtables>?)(<revtbl>?)(<rsidtable>?)(<mathprops>?)(<generator>?)-->
+    <destination name="rtf"/>
+    <optional>
+      <flag name="fbidis"/>
+    </optional>
+    <ref name="character set"/>
+    <optional>
+      <ref name="from"/>
+    </optional>
+    <ref name="deffont"/>
+    <ref name="deflang"/>
+    <optional>
+      <ref name="fonttbl"/>
+    </optional>
+    <optional>
+      <ref name="filetbl"/>
+    </optional>
+    <optional>
+      <ref name="colortbl"/>
+    </optional>
+    <optional>
+      <ref name="stylesheet"/>
+    </optional>
+    <optional>
+      <ref name="stylerestrictions"/>
+    </optional>
+    <optional>
+      <ref name="listtables"/>
+    </optional>
+    <optional>
+      <ref name="revtbl"/>
+    </optional>
+    <optional>
+      <ref name="rsidtable"/>
+    </optional>
+    <optional>
+      <ref name="mathprops"/>
+    </optional>
+    <optional>
+      <ref name="generator"/>
+    </optional>
+  </define>
+  <define name="character set">
+    <!-- (\ansi | \mac | \pc | \pca)? \ansicpgN?-->
+    <!-- (\ansi | \mac | \pc | \pca)? \ansicpgN?-->
+    <!--((\ansi|\mac|\pc|\pca)?)(\ansicpgN?)-->
+    <optional>
+      <choice>
+        <flag name="ansi"/>
+        <flag name="mac"/>
+        <flag name="pc"/>
+        <flag name="pca"/>
+      </choice>
+    </optional>
+    <optional>
+      <value name="ansicpg"/>
+    </optional>
+  </define>
+  <define name="from">
+    <!--\fromtext | \fromhtmlN-->
+    <!--\fromtext | \fromhtmlN-->
+    <!--\fromtext|\fromhtmlN-->
+    <choice>
+      <flag name="fromtext"/>
+      <value name="fromhtml"/>
+    </choice>
+  </define>
+  <define name="deffont">
+    <!--\deffN? \adeffN? (\stshfdbchN  \stshflochN  \stshfhichN  \stshfbiN)?-->
+    <!--\deffN? \adeffN? (\stshfdbchN  \stshflochN  \stshfhichN  \stshfbiN)?-->
+    <!--(\deffN?)(\adeffN?)((\stshfdbchN\stshflochN\stshfhichN\stshfbiN)?)-->
+    <optional>
+      <value name="deff"/>
+    </optional>
+    <optional>
+      <value name="adeff"/>
+    </optional>
+    <optional>
+      <value name="stshfdbch"/>
+      <value name="stshfloch"/>
+      <value name="stshfhich"/>
+      <value name="stshfbi"/>
+    </optional>
+  </define>
+  <define name="deflang">
+    <!--\deflangN? \deflangfeN? \adeflangN?-->
+    <!--\deflangN? \deflangfeN? \adeflangN?-->
+    <!--(\deflangN?)(\deflangfeN?)(\adeflangN?)-->
+    <optional>
+      <value name="deflang"/>
+    </optional>
+    <optional>
+      <value name="deflangfe"/>
+    </optional>
+    <optional>
+      <value name="adeflang"/>
+    </optional>
+  </define>
+  <define name="themedata">
+    <!--'{\*' \themedata #SDATA '}'-->
+    <!--'{' \*\themedata #SDATA '}'-->
+    <!--'{'\*\themedata#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="themedata"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="colorschememapping">
+    <!--'{\*' \colorschememapping #SDATA '}'-->
+    <!--'{' \*\colorschememapping #SDATA '}'-->
+    <!--'{'\*\colorschememapping#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="colorschememapping"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="fonttbl">
+    <!--'{' \fonttbl (<fontinfo> | ('{' <fontinfo> '}'))+ '}'-->
+    <!--'{' \fonttbl (<fontinfo> | ('{' <fontinfo> '}'))+ '}'-->
+    <!--'{'\fonttbl((<fontinfo>|('{'<fontinfo>'}'))+)'}'-->
+    <literal>{</literal>
+    <destination name="fonttbl"/>
+    <one-or-more>
+      <choice>
+        <ref name="fontinfo"/>
+        <literal>{</literal>
+        <ref name="fontinfo"/>
+        <literal>}</literal>
+      </choice>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="fontinfo">
+    <!--<themefont>? \fN <fontfamily> \fcharsetN? \fprqN? <panose>? <nontaggedname>? <fontemb>? \cpgN? <fontname> <fontaltname>? ';' -->
+    <!--<themefont>? \fN <fontfamily> \fcharsetN? \fprqN? <panose>? <nontaggedname>? <fontemb>? \cpgN? <fontname> <fontaltname>? ';' -->
+    <!--(<themefont>?)\fN<fontfamily>(\fcharsetN?)(\fprqN?)(<panose>?)(<nontaggedname>?)(<fontemb>?)(\cpgN?)<fontname>(<fontaltname>?)';' -->
+    <optional>
+      <ref name="themefont"/>
+    </optional>
+    <value name="f"/>
+    <ref name="fontfamily"/>
+    <optional>
+      <value name="fcharset"/>
+    </optional>
+    <optional>
+      <value name="fprq"/>
+    </optional>
+    <optional>
+      <ref name="panose"/>
+    </optional>
+    <optional>
+      <ref name="nontaggedname"/>
+    </optional>
+    <optional>
+      <ref name="fontemb"/>
+    </optional>
+    <optional>
+      <value name="cpg"/>
+    </optional>
+    <ref name="fontname"/>
+    <optional>
+      <ref name="fontaltname"/>
+    </optional>
+    <literal>;</literal>
+    <notoken> </notoken>
+  </define>
+  <define name="themefont">
+    <!--\flomajor | \fhimajor | \fdbmajor | \fbimajor | \flominor | \fhiminor | \fdbminor | \fbiminor-->
+    <!--\flomajor | \fhimajor | \fdbmajor | \fbimajor | \flominor | \fhiminor | \fdbminor | \fbiminor-->
+    <!--\flomajor|\fhimajor|\fdbmajor|\fbimajor|\flominor|\fhiminor|\fdbminor|\fbiminor-->
+    <choice>
+      <flag name="flomajor"/>
+      <flag name="fhimajor"/>
+      <flag name="fdbmajor"/>
+      <flag name="fbimajor"/>
+      <flag name="flominor"/>
+      <flag name="fhiminor"/>
+      <flag name="fdbminor"/>
+      <flag name="fbiminor"/>
+    </choice>
+  </define>
+  <define name="fontfamily">
+    <!--\fnil | \froman | \fswiss | \fmodern | \fscript | \fdecor | \ftech | \fbidi-->
+    <!--\fnil | \froman | \fswiss | \fmodern | \fscript | \fdecor | \ftech | \fbidi-->
+    <!--\fnil|\froman|\fswiss|\fmodern|\fscript|\fdecor|\ftech|\fbidi-->
+    <choice>
+      <flag name="fnil"/>
+      <flag name="froman"/>
+      <flag name="fswiss"/>
+      <flag name="fmodern"/>
+      <flag name="fscript"/>
+      <flag name="fdecor"/>
+      <flag name="ftech"/>
+      <flag name="fbidi"/>
+    </choice>
+  </define>
+  <define name="panose">
+    <!--'{\*' \panose <data> '}'-->
+    <!--'{' \*\panose <data> '}'-->
+    <!--'{'\*\panose<data>'}'-->
+    <literal>{</literal>
+    <destination name="panose"/>
+    <ref name="data"/>
+    <literal>}</literal>
+  </define>
+  <define name="nontaggedname">
+    <!--'{\*' \fname #PCDATA ';}'-->
+    <!--'{' \*\fname #PCDATA ';}'-->
+    <!--'{'\*\fname#PCDATA';}'-->
+    <literal>{</literal>
+    <destination name="fname"/>
+    <pcdata/>
+    <literal>;}</literal>
+  </define>
+  <define name="fontname">
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <pcdata/>
+  </define>
+  <define name="fontaltname">
+    <!--'{\*' \falt #PCDATA '}'-->
+    <!--'{' \*\falt #PCDATA '}'-->
+    <!--'{'\*\falt#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="falt"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="fontemb">
+    <!--'{\*' \fontemb <fonttype> <fontfname>? <data>? '}'-->
+    <!--'{' \*\fontemb <fonttype> <fontfname>? <data>? '}'-->
+    <!--'{'\*\fontemb<fonttype>(<fontfname>?)(<data>?)'}'-->
+    <literal>{</literal>
+    <destination name="fontemb"/>
+    <ref name="fonttype"/>
+    <optional>
+      <ref name="fontfname"/>
+    </optional>
+    <optional>
+      <ref name="data"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="fonttype">
+    <!--\ftnil | \fttruetype-->
+    <!--\ftnil | \fttruetype-->
+    <!--\ftnil|\fttruetype-->
+    <choice>
+      <flag name="ftnil"/>
+      <flag name="fttruetype"/>
+    </choice>
+  </define>
+  <define name="fontfname">
+    <!--'{\*' \fontfile \cpgN? #PCDATA '}'-->
+    <!--'{' \*\fontfile \cpgN? #PCDATA '}'-->
+    <!--'{'\*\fontfile(\cpgN?)#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="fontfile"/>
+    <optional>
+      <value name="cpg"/>
+    </optional>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="filetbl">
+    <!--'{\*' \filetbl ('{' <fileinfo> '}')+ '}'-->
+    <!--'{' \*\filetbl ('{' <fileinfo> '}')+ '}'-->
+    <!--'{'\*\filetbl(('{'<fileinfo>'}')+)'}'-->
+    <literal>{</literal>
+    <destination name="filetbl"/>
+    <one-or-more>
+      <literal>{</literal>
+      <ref name="fileinfo"/>
+      <literal>}</literal>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="fileinfo">
+    <!--\file \fidN \frelativeN? \fosnumN? <filesource>+ <file name>-->
+    <!--\file \fidN \frelativeN? \fosnumN? <filesource>+ <file name>-->
+    <!--\file\fidN(\frelativeN?)(\fosnumN?)(<filesource>+)<file name>-->
+    <destination name="file"/>
+    <value name="fid"/>
+    <optional>
+      <value name="frelative"/>
+    </optional>
+    <optional>
+      <value name="fosnum"/>
+    </optional>
+    <one-or-more>
+      <ref name="filesource"/>
+    </one-or-more>
+    <ref name="file name"/>
+  </define>
+  <define name="filesource">
+    <!--\fvalidmac | \fvaliddos | \fvalidntfs | \fvalidhpfs | \fnetwork | \fnonfilesys-->
+    <!--\fvalidmac | \fvaliddos | \fvalidntfs | \fvalidhpfs | \fnetwork | \fnonfilesys-->
+    <!--\fvalidmac|\fvaliddos|\fvalidntfs|\fvalidhpfs|\fnetwork|\fnonfilesys-->
+    <choice>
+      <flag name="fvalidmac"/>
+      <flag name="fvaliddos"/>
+      <flag name="fvalidntfs"/>
+      <flag name="fvalidhpfs"/>
+      <flag name="fnetwork"/>
+      <flag name="fnonfilesys"/>
+    </choice>
+  </define>
+  <define name="file name">
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <pcdata/>
+  </define>
+  <define name="colortbl">
+    <!--'{' \colortbl <colordef>+ '}'-->
+    <!--'{' \colortbl <colordef>+ '}'-->
+    <!--'{'\colortbl(<colordef>+)'}'-->
+    <literal>{</literal>
+    <destination name="colortbl"/>
+    <one-or-more>
+      <ref name="colordef"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="colordef">
+    <!--<themecolor>? & \ctintN? & \cshadeN? \redN? & \greenN? & \blueN? ';'-->
+    <!--<themecolor>? & \ctintN? & \cshadeN? \redN? & \greenN? & \blueN? ';'-->
+    <!--(<themecolor>?)&(\ctintN?)&(\cshadeN?)(\redN?)&(\greenN?)&(\blueN?)';'-->
+    <any>
+      <optional>
+        <ref name="themecolor"/>
+      </optional>
+      <optional>
+        <value name="ctint"/>
+      </optional>
+      <optional>
+        <value name="cshade"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <value name="red"/>
+      </optional>
+      <optional>
+        <value name="green"/>
+      </optional>
+      <optional>
+        <value name="blue"/>
+      </optional>
+    </any>
+    <literal>;</literal>
+  </define>
+  <define name="themecolor">
+    <!--\cmaindarkone | \cmainlightone | \cmaindarktwo | \cmainlighttwo | \caccentone | \caccenttwo | \caccentthree | \caccentfour | \caccentfive | \caccentsix | \chyperlink | \cfollowedhyperlink | \cbackgroundone | \ctextone | \cbackgroundtwo | \ctexttwo-->
+    <!--\cmaindarkone | \cmainlightone | \cmaindarktwo | \cmainlighttwo | \caccentone | \caccenttwo | \caccentthree | \caccentfour | \caccentfive | \caccentsix | \chyperlink | \cfollowedhyperlink | \cbackgroundone | \ctextone | \cbackgroundtwo | \ctexttwo-->
+    <!--\cmaindarkone|\cmainlightone|\cmaindarktwo|\cmainlighttwo|\caccentone|\caccenttwo|\caccentthree|\caccentfour|\caccentfive|\caccentsix|\chyperlink|\cfollowedhyperlink|\cbackgroundone|\ctextone|\cbackgroundtwo|\ctexttwo-->
+    <choice>
+      <flag name="cmaindarkone"/>
+      <flag name="cmainlightone"/>
+      <flag name="cmaindarktwo"/>
+      <flag name="cmainlighttwo"/>
+      <flag name="caccentone"/>
+      <flag name="caccenttwo"/>
+      <flag name="caccentthree"/>
+      <flag name="caccentfour"/>
+      <flag name="caccentfive"/>
+      <flag name="caccentsix"/>
+      <flag name="chyperlink"/>
+      <flag name="cfollowedhyperlink"/>
+      <flag name="cbackgroundone"/>
+      <flag name="ctextone"/>
+      <flag name="cbackgroundtwo"/>
+      <flag name="ctexttwo"/>
+    </choice>
+  </define>
+  <define name="stylesheet">
+    <!--'{' \stylesheet <style>+ '}'-->
+    <!--'{' \stylesheet <style>+ '}'-->
+    <!--'{'\stylesheet(<style>+)'}'-->
+    <literal>{</literal>
+    <destination name="stylesheet"/>
+    <one-or-more>
+      <ref name="style"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="style">
+    <!--'{' <styledef>? <keycode>? <formatting> \additive? \sbasedonN? \snextN? \sautoupd? \slinkN? \sqformat? \spriorityN? \sunhideusedN? \slocked? \shidden? \ssemihiddenN? \spersonal? \scompose? \sreply? \styrsidN? <stylename>? ';}'-->
+    <!--'{' <styledef>? <keycode>? <formatting> \additive? \sbasedonN? \snextN? \sautoupd? \slinkN? \sqformat? \spriorityN? \sunhideusedN? \slocked? \shidden? \ssemihiddenN? \spersonal? \scompose? \sreply? \styrsidN? <stylename>? ';}'-->
+    <!--'{'(<styledef>?)(<keycode>?)<formatting>(\additive?)(\sbasedonN?)(\snextN?)(\sautoupd?)(\slinkN?)(\sqformat?)(\spriorityN?)(\sunhideusedN?)(\slocked?)(\shidden?)(\ssemihiddenN?)(\spersonal?)(\scompose?)(\sreply?)(\styrsidN?)(<stylename>?)';}'-->
+    <literal>{</literal>
+    <optional>
+      <ref name="styledef"/>
+    </optional>
+    <optional>
+      <ref name="keycode"/>
+    </optional>
+    <ref name="formatting"/>
+    <optional>
+      <flag name="additive"/>
+    </optional>
+    <optional>
+      <value name="sbasedon"/>
+    </optional>
+    <optional>
+      <value name="snext"/>
+    </optional>
+    <optional>
+      <flag name="sautoupd"/>
+    </optional>
+    <optional>
+      <value name="slink"/>
+    </optional>
+    <optional>
+      <flag name="sqformat"/>
+    </optional>
+    <optional>
+      <value name="spriority"/>
+    </optional>
+    <optional>
+      <value name="sunhideused"/>
+    </optional>
+    <optional>
+      <flag name="slocked"/>
+    </optional>
+    <optional>
+      <flag name="shidden"/>
+    </optional>
+    <optional>
+      <value name="ssemihidden"/>
+    </optional>
+    <optional>
+      <flag name="spersonal"/>
+    </optional>
+    <optional>
+      <flag name="scompose"/>
+    </optional>
+    <optional>
+      <flag name="sreply"/>
+    </optional>
+    <optional>
+      <value name="styrsid"/>
+    </optional>
+    <optional>
+      <ref name="stylename"/>
+    </optional>
+    <literal>;}</literal>
+  </define>
+  <define name="styledef">
+    <!--\sN | \*\csN | \*\dsN | \*\tsN \tsrowd-->
+    <!--\sN | \*\csN | \*\dsN | \*\tsN \tsrowd-->
+    <!--\sN|\*\csN|\*\dsN|\*\tsN\tsrowd-->
+    <choice>
+      <value name="s"/>
+      <destination name="cs"/>
+      <destination name="ds"/>
+      <destination name="ts"/>
+    </choice>
+    <flag name="tsrowd"/>
+  </define>
+  <define name="keycode">
+    <!--'{' \keycode <keys> '}'-->
+    <!--'{' \keycode <keys> '}'-->
+    <!--'{'\keycode<keys>'}'-->
+    <literal>{</literal>
+    <destination name="keycode"/>
+    <ref name="keys"/>
+    <literal>}</literal>
+  </define>
+  <define name="keys">
+    <!--(\shift? & \ctrl? & \alt?) <key>-->
+    <!--(\shift? & \ctrl? & \alt?) <key>-->
+    <!--((\shift?)&(\ctrl?)&(\alt?))<key>-->
+    <any>
+      <optional>
+        <flag name="shift"/>
+      </optional>
+      <optional>
+        <flag name="ctrl"/>
+      </optional>
+      <optional>
+        <flag name="alt"/>
+      </optional>
+    </any>
+    <ref name="key"/>
+  </define>
+  <define name="key">
+    <!--\fnN | #PCDATA-->
+    <!--\fnN | #PCDATA-->
+    <!--\fnN|#PCDATA-->
+    <choice>
+      <value name="fn"/>
+      <pcdata/>
+    </choice>
+  </define>
+  <define name="formatting">
+    <!--(<brdrdef> | <parfmt> | <apoctl> | <tabdef> | <shading> | <chrfmt>)+-->
+    <!--(<brdrdef> | <parfmt> | <apoctl> | <tabdef> | <shading> | <chrfmt>)+-->
+    <!--((<brdrdef>|<parfmt>|<apoctl>|<tabdef>|<shading>|<chrfmt>)+)-->
+    <one-or-more>
+      <choice>
+        <ref name="brdrdef"/>
+        <ref name="parfmt"/>
+        <ref name="apoctl"/>
+        <ref name="tabdef"/>
+        <ref name="shading"/>
+        <ref name="chrfmt"/>
+      </choice>
+    </one-or-more>
+  </define>
+  <define name="stylename">
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <pcdata/>
+  </define>
+  <define name="stylerestrictions">
+    <!--'{\*' \latentstyles \lsdstimaxN \lsdlockeddefN \lsdsemihiddendefN \lsdunhideuseddefN \lsdqformatdefN \lsdprioritydefN <exceptions>? '}'-->
+    <!--'{' \*\latentstyles \lsdstimaxN \lsdlockeddefN \lsdsemihiddendefN \lsdunhideuseddefN \lsdqformatdefN \lsdprioritydefN <exceptions>? '}'-->
+    <!--'{'\*\latentstyles\lsdstimaxN\lsdlockeddefN\lsdsemihiddendefN\lsdunhideuseddefN\lsdqformatdefN\lsdprioritydefN(<exceptions>?)'}'-->
+    <literal>{</literal>
+    <destination name="latentstyles"/>
+    <value name="lsdstimax"/>
+    <value name="lsdlockeddef"/>
+    <value name="lsdsemihiddendef"/>
+    <value name="lsdunhideuseddef"/>
+    <value name="lsdqformatdef"/>
+    <value name="lsdprioritydef"/>
+    <optional>
+      <ref name="exceptions"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="exceptions">
+    <!--'{' \lsdlockedexcept <stylenames>+ '}'-->
+    <!--'{' \lsdlockedexcept <stylenames>+ '}'-->
+    <!--'{'\lsdlockedexcept(<stylenames>+)'}'-->
+    <literal>{</literal>
+    <destination name="lsdlockedexcept"/>
+    <one-or-more>
+      <ref name="stylenames"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="stylenames">
+    <!--<stylename> ';'-->
+    <!--<stylename> ';'-->
+    <!--<stylename>';'-->
+    <ref name="stylename"/>
+    <literal>;</literal>
+  </define>
+  <define name="stylename">
+    <!-- \lsdpriorityN ? \lsdunhideusedN ? \lsdsemihiddenN ? \lsdqformatN ? \lsdlockedN ? #PCDATA-->
+    <!-- \lsdpriorityN ? \lsdunhideusedN ? \lsdsemihiddenN ? \lsdqformatN ? \lsdlockedN ? #PCDATA-->
+    <!--(\lsdpriorityN?)(\lsdunhideusedN?)(\lsdsemihiddenN?)(\lsdqformatN?)(\lsdlockedN?)#PCDATA-->
+    <optional>
+      <value name="lsdpriority"/>
+    </optional>
+    <optional>
+      <value name="lsdunhideused"/>
+    </optional>
+    <optional>
+      <value name="lsdsemihidden"/>
+    </optional>
+    <optional>
+      <value name="lsdqformat"/>
+    </optional>
+    <optional>
+      <value name="lsdlocked"/>
+    </optional>
+    <pcdata/>
+  </define>
+  <define name="listtable">
+    <!--'{\*' \listtable <listpicture>? <list>+ '}'-->
+    <!--'{' \*\listtable <listpicture>? <list>+ '}'-->
+    <!--'{'\*\listtable(<listpicture>?)(<list>+)'}'-->
+    <literal>{</literal>
+    <destination name="listtable"/>
+    <optional>
+      <ref name="listpicture"/>
+    </optional>
+    <one-or-more>
+      <ref name="list"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="listpicture">
+    <!--'{\*' \listpicture <shppictlist> '}'-->
+    <!--'{' \*\listpicture <shppictlist> '}'-->
+    <!--'{'\*\listpicture<shppictlist>'}'-->
+    <literal>{</literal>
+    <destination name="listpicture"/>
+    <ref name="shppictlist"/>
+    <literal>}</literal>
+  </define>
+  <define name="list">
+    <!--\list \listemplateidN & (\listsimpleN | \listhybrid)? & <listlevel>+ & \listrestarthdnN & \listidN & (\listname #PCDATA ';') \liststyleidN? \liststylename?-->
+    <!--\list \listemplateidN & (\listsimpleN | \listhybrid)? & <listlevel>+ & \listrestarthdnN & \listidN & (\listname #PCDATA ';') \liststyleidN? \liststylename?-->
+    <!--\list\listemplateidN&((\listsimpleN|\listhybrid)?)&(<listlevel>+)&\listrestarthdnN&\listidN&(\listname#PCDATA';')(\liststyleidN?)(\liststylename?)-->
+    <destination name="list"/>
+    <any>
+      <control name="listemplateid"/>
+      <optional>
+        <choice>
+          <value name="listsimple"/>
+          <flag name="listhybrid"/>
+        </choice>
+      </optional>
+      <one-or-more>
+        <ref name="listlevel"/>
+      </one-or-more>
+      <value name="listrestarthdn"/>
+      <value name="listid"/>
+      <destination name="listname"/>
+      <pcdata/>
+      <literal>;</literal>
+    </any>
+    <optional>
+      <value name="liststyleid"/>
+    </optional>
+    <optional>
+      <destination name="liststylename"/>
+    </optional>
+  </define>
+  <define name="listlevel">
+    <!--'{' \listlevel <number> <justification> & \levelfollowN & \levelstartatN & \lvltentative? (\leveloldN & \levelprevN? & \levelprevspaceN? & \levelspaceN? & \levelindentN?)? & <leveltext> & <levelnumbers> & \levellegalN? & \levelnorestartN? & <chrfmt>? & \levelpictureN & \liN? & \fiN? & (\jclisttab \txN)? & \linN? '}'-->
+    <!--'{' \listlevel <number> <justification> & \levelfollowN & \levelstartatN & \lvltentative? (\leveloldN & \levelprevN? & \levelprevspaceN? & \levelspaceN? & \levelindentN?)? & <leveltext> & <levelnumbers> & \levellegalN? & \levelnorestartN? & <chrfmt>? & \levelpictureN & \liN? & \fiN? & (\jclisttab \txN)? & \linN? '}'-->
+    <!--'{'\listlevel<number><justification>&\levelfollowN&\levelstartatN&(\lvltentative?)((\leveloldN&(\levelprevN?)&(\levelprevspaceN?)&(\levelspaceN?)&(\levelindentN?))?)&<leveltext>&<levelnumbers>&(\levellegalN?)&(\levelnorestartN?)&(<chrfmt>?)&\levelpictureN&(\liN?)&(\fiN?)&((\jclisttab\txN)?)&(\linN?)'}'-->
+    <literal>{</literal>
+    <destination name="listlevel"/>
+    <ref name="number"/>
+    <any>
+      <ref name="justification"/>
+      <value name="levelfollow"/>
+      <value name="levelstartat"/>
+      <optional>
+        <flag name="lvltentative"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <any>
+          <value name="levelold"/>
+          <optional>
+            <value name="levelprev"/>
+          </optional>
+          <optional>
+            <value name="levelprevspace"/>
+          </optional>
+          <optional>
+            <value name="levelspace"/>
+          </optional>
+          <optional>
+            <value name="levelindent"/>
+          </optional>
+        </any>
+      </optional>
+      <ref name="leveltext"/>
+      <ref name="levelnumbers"/>
+      <optional>
+        <value name="levellegal"/>
+      </optional>
+      <optional>
+        <value name="levelnorestart"/>
+      </optional>
+      <optional>
+        <ref name="chrfmt"/>
+      </optional>
+      <value name="levelpicture"/>
+      <optional>
+        <value name="li"/>
+      </optional>
+      <optional>
+        <value name="fi"/>
+      </optional>
+      <optional>
+        <flag name="jclisttab"/>
+        <value name="tx"/>
+      </optional>
+      <optional>
+        <value name="lin"/>
+      </optional>
+    </any>
+    <literal>}</literal>
+  </define>
+  <define name="number">
+    <!--\levelnfcN | \levelnfcnN | (\levelnfcN & \levelnfcnN)-->
+    <!--\levelnfcN | \levelnfcnN | (\levelnfcN & \levelnfcnN)-->
+    <!--\levelnfcN|\levelnfcnN|(\levelnfcN&\levelnfcnN)-->
+    <choice>
+      <value name="levelnfc"/>
+      <value name="levelnfcn"/>
+      <any>
+        <value name="levelnfc"/>
+        <value name="levelnfcn"/>
+      </any>
+    </choice>
+  </define>
+  <define name="justification">
+    <!--\leveljcN | \leveljcnN | (\leveljcN & \leveljcnN)-->
+    <!--\leveljcN | \leveljcnN | (\leveljcN & \leveljcnN)-->
+    <!--\leveljcN|\leveljcnN|(\leveljcN&\leveljcnN)-->
+    <choice>
+      <value name="leveljc"/>
+      <value name="leveljcn"/>
+      <any>
+        <value name="leveljc"/>
+        <value name="leveljcn"/>
+      </any>
+    </choice>
+  </define>
+  <define name="leveltext">
+    <!--'{' \leveltext \leveltemplateidN? #SDATA ';}'-->
+    <!--'{' \leveltext \leveltemplateidN? #SDATA ';}'-->
+    <!--'{'\leveltext(\leveltemplateidN?)#SDATA';}'-->
+    <literal>{</literal>
+    <destination name="leveltext"/>
+    <optional>
+      <value name="leveltemplateid"/>
+    </optional>
+    <sdata/>
+    <literal>;}</literal>
+  </define>
+  <define name="levelnumbers">
+    <!--'{' \levelnumbers #SDATA ';}'-->
+    <!--'{' \levelnumbers #SDATA ';}'-->
+    <!--'{'\levelnumbers#SDATA';}'-->
+    <literal>{</literal>
+    <destination name="levelnumbers"/>
+    <sdata/>
+    <literal>;}</literal>
+  </define>
+  <define name="listoverridetable">
+    <!--'{\*' \listoverridetable <listoverride>+ '}'-->
+    <!--'{' \*\listoverridetable <listoverride>+ '}'-->
+    <!--'{'\*\listoverridetable(<listoverride>+)'}'-->
+    <literal>{</literal>
+    <destination name="listoverridetable"/>
+    <one-or-more>
+      <ref name="listoverride"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="listoverride">
+    <!--'{' \listoverride & \listidN & \listoverridecountN & \lsN <lfolevel>? '}'-->
+    <!--'{' \listoverride & \listidN & \listoverridecountN & \lsN <lfolevel>? '}'-->
+    <!--'{'\listoverride&\listidN&\listoverridecountN&\lsN(<lfolevel>?)'}'-->
+    <literal>{</literal>
+    <any>
+      <destination name="listoverride"/>
+      <value name="listid"/>
+      <value name="listoverridecount"/>
+      <value name="ls"/>
+    </any>
+    <optional>
+      <ref name="lfolevel"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="lfolevel">
+    <!--'{' \lfolevel \listoverrideformatN? \listoverridestartat? <listlevel> '}'-->
+    <!--'{' \lfolevel \listoverrideformatN? \listoverridestartat? <listlevel> '}'-->
+    <!--'{'\lfolevel(\listoverrideformatN?)(\listoverridestartat?)<listlevel>'}'-->
+    <literal>{</literal>
+    <destination name="lfolevel"/>
+    <optional>
+      <value name="listoverrideformat"/>
+    </optional>
+    <optional>
+      <flag name="listoverridestartat"/>
+    </optional>
+    <ref name="listlevel"/>
+    <literal>}</literal>
+  </define>
+  <define name="pgptbl">
+    <!--'{\*' \pgptbl <entry>+ '}'-->
+    <!--'{' \*\pgptbl <entry>+ '}'-->
+    <!--'{'\*\pgptbl(<entry>+)'}'-->
+    <literal>{</literal>
+    <destination name="pgptbl"/>
+    <one-or-more>
+      <ref name="entry"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="entry">
+    <!--'{' \pgp <value> '}'-->
+    <!--'{' \pgp <value> '}'-->
+    <!--'{'\pgp<value>'}'-->
+    <literal>{</literal>
+    <destination name="pgp"/>
+    <ref name="value"/>
+    <literal>}</literal>
+  </define>
+  <define name="value">
+    <!--\ipgpN <parfmt>+-->
+    <!--\ipgpN <parfmt>+-->
+    <!--\ipgpN(<parfmt>+)-->
+    <value name="ipgp"/>
+    <one-or-more>
+      <ref name="parfmt"/>
+    </one-or-more>
+  </define>
+  <define name="rsidtable">
+    <!--'{\*' \rsidtbl \rsidN+ '}'-->
+    <!--'{' \*\rsidtbl \rsidN+ '}'-->
+    <!--'{'\*\rsidtbl(\rsidN+)'}'-->
+    <literal>{</literal>
+    <destination name="rsidtbl"/>
+    <one-or-more>
+      <value name="rsid"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="oldprop">
+    <!--'{\*' <oldproptype> <oldproperties>+ <trackinginfo> ';}'-->
+    <!--'{\*' <oldproptype> <oldproperties>+ <trackinginfo> ';}'-->
+    <!--'{\*'<oldproptype>(<oldproperties>+)<trackinginfo>';}'-->
+    <literal>{\*</literal>
+    <ref name="oldproptype"/>
+    <one-or-more>
+      <ref name="oldproperties"/>
+    </one-or-more>
+    <ref name="trackinginfo"/>
+    <literal>;}</literal>
+  </define>
+  <define name="oldproptype">
+    <!--\oldcprops | \oldpprops | \oldtprops | \oldsprops-->
+    <!--\oldcprops | \oldpprops | \oldtprops | \oldsprops-->
+    <!--\oldcprops|\oldpprops|\oldtprops|\oldsprops-->
+    <choice>
+      <destination name="oldcprops"/>
+      <destination name="oldpprops"/>
+      <destination name="oldtprops"/>
+      <destination name="oldsprops"/>
+    </choice>
+  </define>
+  <define name="oldproperties">
+    <!--This section includes any of the relevant format tags that would have to be put in place to revert the document to its pre-edit form. For example, this would be \b0 if the user had chosen to make the selection bold.-->
+    <!--This section includes any of the relevant format tags that would have to be put in place to revert the document to its pre-edit form. For example, this would be \b0 if the user had chosen to make the selection bold.-->
+    <!--This section includes any of the relevant format tags that would have to be put in place to revert the document to its pre-edit form. For example, this would be \b0 if the user had chosen to make the selection bold.-->
+    <token>This section includes any of the relevant format tags that would have to be put in place to revert the document to its pre-edit form. For example, this would be \b0 if the user had chosen to make the selection bold.</token>
+  </define>
+  <define name="trackinginfo">
+    <!--This can be any tag used to track the author, revision ID, and date.-->
+    <!--This can be any tag used to track the author, revision ID, and date.-->
+    <!--This can be any tag used to track the author, revision ID, and date.-->
+    <token>This can be any tag used to track the author, revision ID, and date.</token>
+  </define>
+  <define name="userprotection">
+    <!--'{\*' \protusertbl <user>+ '}'-->
+    <!--'{' \*\protusertbl <user>+ '}'-->
+    <!--'{'\*\protusertbl(<user>+)'}'-->
+    <literal>{</literal>
+    <destination name="protusertbl"/>
+    <one-or-more>
+      <ref name="user"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="user">
+    <!--'{' #PCDATA '}'A user name is enclosed by braces.-->
+    <!--'{' #PCDATA '}'A user name is enclosed by braces.-->
+    <!--'{'#PCDATA'}'A user name is enclosed by braces.-->
+    <literal>{</literal>
+    <pcdata/>
+    <literal>}</literal>
+    <token>A user name is enclosed by braces.</token>
+  </define>
+  <define name="generator">
+    <!--'{\*' \generator <name> ';}'-->
+    <!--'{' \*\generator <name> ';}'-->
+    <!--'{'\*\generator<name>';}'-->
+    <literal>{</literal>
+    <destination name="generator"/>
+    <ref name="name"/>
+    <literal>;}</literal>
+  </define>
+  <define name="name">
+    <!--#PCDATA, the name of the program, the version, the build, and any other information about the emitting program can be listed here. Word 2002 lists {\*\generator Microsoft Word 10.0.XXXX} – Word 2003 lists {\*\generator Microsoft Word 11.0.XXXX} – Word 2007 lists {\*\generator Microsoft Word 12.0.XXXX} in which XXXX is replaced by the build number. Only ASCII text is allowed in this field.-->
+    <!--#PCDATA, the name of the program, the version, the build, and any other information about the emitting program can be listed here. Word 2002 lists {\*\generator Microsoft Word 10.0.XXXX} – Word 2003 lists {\*\generator Microsoft Word 11.0.XXXX} – Word 2007 lists {\*\generator Microsoft Word 12.0.XXXX} in which XXXX is replaced by the build number. Only ASCII text is allowed in this field.-->
+    <!--#PCDATA, the name of the program, the version, the build, and any other information about the emitting program can be listed here. Word 2002 lists {\*\generator Microsoft Word 10.0.XXXX} – Word 2003 lists {\*\generator Microsoft Word 11.0.XXXX} – Word 2007 lists {\*\generator Microsoft Word 12.0.XXXX} in which XXXX is replaced by the build number. Only ASCII text is allowed in this field.-->
+    <pcdata/>
+    <token>, the name of the program, the version, the build, and any other information about the emitting program can be listed here. Word 2002 lists {\*\generator Microsoft Word 10.0.XXXX} – Word 2003 lists {\*\generator Microsoft Word 11.0.XXXX} – Word 2007 lists {\*\generator Microsoft Word 12.0.XXXX} in which XXXX is replaced by the build number. Only ASCII text is allowed in this field.</token>
+  </define>
+  <define name="document">
+    <!--<info>? <xmlnstbl>? <docfmt>* <section>+-->
+    <!--<info>? <xmlnstbl>? <docfmt>* <section>+-->
+    <!--(<info>?)(<xmlnstbl>?)(<docfmt>*)(<section>+)-->
+    <optional>
+      <ref name="info"/>
+    </optional>
+    <optional>
+      <ref name="xmlnstbl"/>
+    </optional>
+    <zero-or-more>
+      <ref name="docfmt"/>
+    </zero-or-more>
+    <one-or-more>
+      <ref name="section"/>
+    </one-or-more>
+  </define>
+  <define name="info">
+    <!--'{' \info <title>? & <subject>? & <author>? & <manager>? & <company>? <operator>? & <category>? & <keywords>? & <comment>? & \versionN? & <doccomm>? & \vernN? & <creatim>? & <revtim>? & <printim>? & <buptim>? & \edminsN? & \nofpagesN? & \nofwordsN? \nofcharsN? & \idN? '}'-->
+    <!--'{' \info <title>? & <subject>? & <author>? & <manager>? & <company>? <operator>? & <category>? & <keywords>? & <comment>? & \versionN? & <doccomm>? & \vernN? & <creatim>? & <revtim>? & <printim>? & <buptim>? & \edminsN? & \nofpagesN? & \nofwordsN? \nofcharsN? & \idN? '}'-->
+    <!--'{'\info(<title>?)&(<subject>?)&(<author>?)&(<manager>?)&(<company>?)(<operator>?)&(<category>?)&(<keywords>?)&(<comment>?)&(\versionN?)&(<doccomm>?)&(\vernN?)&(<creatim>?)&(<revtim>?)&(<printim>?)&(<buptim>?)&(\edminsN?)&(\nofpagesN?)&(\nofwordsN?)(\nofcharsN?)&(\idN?)'}'-->
+    <literal>{</literal>
+    <destination name="info"/>
+    <any>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <optional>
+        <ref name="subject"/>
+      </optional>
+      <optional>
+        <ref name="author"/>
+      </optional>
+      <optional>
+        <ref name="manager"/>
+      </optional>
+      <optional>
+        <ref name="company"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <ref name="operator"/>
+      </optional>
+      <optional>
+        <ref name="category"/>
+      </optional>
+      <optional>
+        <ref name="keywords"/>
+      </optional>
+      <optional>
+        <ref name="comment"/>
+      </optional>
+      <optional>
+        <value name="version"/>
+      </optional>
+      <optional>
+        <ref name="doccomm"/>
+      </optional>
+      <optional>
+        <value name="vern"/>
+      </optional>
+      <optional>
+        <ref name="creatim"/>
+      </optional>
+      <optional>
+        <ref name="revtim"/>
+      </optional>
+      <optional>
+        <ref name="printim"/>
+      </optional>
+      <optional>
+        <ref name="buptim"/>
+      </optional>
+      <optional>
+        <value name="edmins"/>
+      </optional>
+      <optional>
+        <value name="nofpages"/>
+      </optional>
+      <optional>
+        <value name="nofwords"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <value name="nofchars"/>
+      </optional>
+      <optional>
+        <value name="id"/>
+      </optional>
+    </any>
+    <literal>}</literal>
+  </define>
+  <define name="title">
+    <!--'{' \title #PCDATA '}'-->
+    <!--'{' \title #PCDATA '}'-->
+    <!--'{'\title#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="title"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="subject">
+    <!--'{' \subject #PCDATA '}'-->
+    <!--'{' \subject #PCDATA '}'-->
+    <!--'{'\subject#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="subject"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="author">
+    <!--'{' \author #PCDATA '}'-->
+    <!--'{' \author #PCDATA '}'-->
+    <!--'{'\author#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="author"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="manager">
+    <!--'{' \manager #PCDATA '}'-->
+    <!--'{' \manager #PCDATA '}'-->
+    <!--'{'\manager#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="manager"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="company">
+    <!--'{' \company #PCDATA '}'-->
+    <!--'{' \company #PCDATA '}'-->
+    <!--'{'\company#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="company"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="operator">
+    <!--'{' \operator #PCDATA '}'-->
+    <!--'{' \operator #PCDATA '}'-->
+    <!--'{'\operator#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="operator"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="category">
+    <!--'{' \category #PCDATA '}'-->
+    <!--'{' \category #PCDATA '}'-->
+    <!--'{'\category#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="category"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="keywords">
+    <!--'{' \keywords #PCDATA '}'-->
+    <!--'{' \keywords #PCDATA '}'-->
+    <!--'{'\keywords#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="keywords"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="comment">
+    <!--'{' \comment #PCDATA '}'-->
+    <!--'{' \comment #PCDATA '}'-->
+    <!--'{'\comment#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="comment"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="doccomm">
+    <!--'{' \doccomm #PCDATA '}'-->
+    <!--'{' \doccomm #PCDATA '}'-->
+    <!--'{'\doccomm#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="doccomm"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="hlinkbase">
+    <!--'{' \hlinkbase #PCDATA '}'-->
+    <!--'{' \hlinkbase #PCDATA '}'-->
+    <!--'{'\hlinkbase#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="hlinkbase"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="creatim">
+    <!--'{' \creatim <time> '}'-->
+    <!--'{' \creatim <time> '}'-->
+    <!--'{'\creatim<time>'}'-->
+    <literal>{</literal>
+    <destination name="creatim"/>
+    <ref name="time"/>
+    <literal>}</literal>
+  </define>
+  <define name="revtim">
+    <!--'{' \revtim <time> '}'-->
+    <!--'{' \revtim <time> '}'-->
+    <!--'{'\revtim<time>'}'-->
+    <literal>{</literal>
+    <destination name="revtim"/>
+    <ref name="time"/>
+    <literal>}</literal>
+  </define>
+  <define name="printim">
+    <!--'{' \printim <time> '}'-->
+    <!--'{' \printim <time> '}'-->
+    <!--'{'\printim<time>'}'-->
+    <literal>{</literal>
+    <destination name="printim"/>
+    <ref name="time"/>
+    <literal>}</literal>
+  </define>
+  <define name="buptim">
+    <!--'{' \buptim <time> '}'-->
+    <!--'{' \buptim <time> '}'-->
+    <!--'{'\buptim<time>'}'-->
+    <literal>{</literal>
+    <destination name="buptim"/>
+    <ref name="time"/>
+    <literal>}</literal>
+  </define>
+  <define name="time">
+    <!--\yrN? \moN? \dyN? \hrN? \minN? \secN?-->
+    <!--\yrN? \moN? \dyN? \hrN? \minN? \secN?-->
+    <!--(\yrN?)(\moN?)(\dyN?)(\hrN?)(\minN?)(\secN?)-->
+    <optional>
+      <value name="yr"/>
+    </optional>
+    <optional>
+      <value name="mo"/>
+    </optional>
+    <optional>
+      <value name="dy"/>
+    </optional>
+    <optional>
+      <value name="hr"/>
+    </optional>
+    <optional>
+      <value name="min"/>
+    </optional>
+    <optional>
+      <value name="sec"/>
+    </optional>
+  </define>
+  <define name="userprops">
+    <!--'{\*' \userprops <propinfo>* '}'-->
+    <!--'{' \*\userprops <propinfo>* '}'-->
+    <!--'{'\*\userprops(<propinfo>*)'}'-->
+    <literal>{</literal>
+    <destination name="userprops"/>
+    <zero-or-more>
+      <ref name="propinfo"/>
+    </zero-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="propinfo">
+    <!--'{' <propname> \proptypeN <staticval> <linkval>? '}'-->
+    <!--'{' <propname> \proptypeN <staticval> <linkval>? '}'-->
+    <!--'{'<propname>\proptypeN<staticval>(<linkval>?)'}'-->
+    <literal>{</literal>
+    <ref name="propname"/>
+    <value name="proptype"/>
+    <ref name="staticval"/>
+    <optional>
+      <ref name="linkval"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="propname">
+    <!--'{' \propname #PCDATA '}'-->
+    <!--'{' \propname #PCDATA '}'-->
+    <!--'{'\propname#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="propname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="staticval">
+    <!--'{' \staticval #PCDATA '}'-->
+    <!--'{' \staticval #PCDATA '}'-->
+    <!--'{'\staticval#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="staticval"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="linkval">
+    <!--'{' \linkval #PCDATA '}'-->
+    <!--'{' \linkval #PCDATA '}'-->
+    <!--'{'\linkval#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="linkval"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="passwordhash">
+    <!--'{\*' \passwordhash #SDATA '}'-->
+    <!--'{' \*\passwordhash #SDATA '}'-->
+    <!--'{'\*\passwordhash#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="passwordhash"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="xmlnstbl">
+    <!--'{\*' \xmlnstbl <xmlnsdecl>* '}'-->
+    <!--'{' \*\xmlnstbl <xmlnsdecl>* '}'-->
+    <!--'{'\*\xmlnstbl(<xmlnsdecl>*)'}'-->
+    <literal>{</literal>
+    <destination name="xmlnstbl"/>
+    <zero-or-more>
+      <ref name="xmlnsdecl"/>
+    </zero-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="xmlnsdecl">
+    <!--'{' \xmlnsN #PCDATA '}'-->
+    <!--'{' \xmlnsN #PCDATA '}'-->
+    <!--'{'\xmlnsN#PCDATA'}'-->
+    <literal>{</literal>
+    <value name="xmlns"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mailmerge">
+    <!--'{\*' \mailmerge <mmmaintype> \mmlinktoquery? <mmdatatype> \mmdefaultsql? (<mmconnectstrdata> | <mmconnectstr>)? <mmquery>? <mmdatasource>? \mmblanklinks? <mmheadersource> <mmdest> <mmaddfieldname>? <mmmailsubject>? \mmattach? \mmshowdata? \mmreccurN \mmerrorsN <mmodso>* \mmodsocoldelimN \mmjdsotypeN \mmodsofhdrN <mmodsorecipdata>+ '}'-->
+    <!--'{' \*\mailmerge <mmmaintype> \mmlinktoquery? <mmdatatype> \mmdefaultsql? (<mmconnectstrdata> | <mmconnectstr>)? <mmquery>? <mmdatasource>? \mmblanklinks? <mmheadersource> <mmdest> <mmaddfieldname>? <mmmailsubject>? \mmattach? \mmshowdata? \mmreccurN \mmerrorsN <mmodso>* \mmodsocoldelimN \mmjdsotypeN \mmodsofhdrN <mmodsorecipdata>+ '}'-->
+    <!--'{'\*\mailmerge<mmmaintype>(\mmlinktoquery?)<mmdatatype>(\mmdefaultsql?)((<mmconnectstrdata>|<mmconnectstr>)?)(<mmquery>?)(<mmdatasource>?)(\mmblanklinks?)<mmheadersource><mmdest>(<mmaddfieldname>?)(<mmmailsubject>?)(\mmattach?)(\mmshowdata?)\mmreccurN\mmerrorsN(<mmodso>*)\mmodsocoldelimN\mmjdsotypeN\mmodsofhdrN(<mmodsorecipdata>+)'}'-->
+    <literal>{</literal>
+    <destination name="mailmerge"/>
+    <ref name="mmmaintype"/>
+    <optional>
+      <flag name="mmlinktoquery"/>
+    </optional>
+    <ref name="mmdatatype"/>
+    <optional>
+      <flag name="mmdefaultsql"/>
+    </optional>
+    <optional>
+      <choice>
+        <ref name="mmconnectstrdata"/>
+        <ref name="mmconnectstr"/>
+      </choice>
+    </optional>
+    <optional>
+      <ref name="mmquery"/>
+    </optional>
+    <optional>
+      <ref name="mmdatasource"/>
+    </optional>
+    <optional>
+      <control name="mmblanklinks"/>
+    </optional>
+    <ref name="mmheadersource"/>
+    <ref name="mmdest"/>
+    <optional>
+      <ref name="mmaddfieldname"/>
+    </optional>
+    <optional>
+      <ref name="mmmailsubject"/>
+    </optional>
+    <optional>
+      <flag name="mmattach"/>
+    </optional>
+    <optional>
+      <flag name="mmshowdata"/>
+    </optional>
+    <value name="mmreccur"/>
+    <value name="mmerrors"/>
+    <zero-or-more>
+      <ref name="mmodso"/>
+    </zero-or-more>
+    <control name="mmodsocoldelim"/>
+    <control name="mmjdsotype"/>
+    <control name="mmodsofhdr"/>
+    <one-or-more>
+      <ref name="mmodsorecipdata"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="mmmaintype">
+    <!--\mmmaintypecatalog | \mmmaintypeenvelopes | \mmmaintypelabels | \mmmaintypeletters | \mmmaintypeemail | \mmmaintypefax -->
+    <!--\mmmaintypecatalog | \mmmaintypeenvelopes | \mmmaintypelabels | \mmmaintypeletters | \mmmaintypeemail | \mmmaintypefax -->
+    <!--\mmmaintypecatalog|\mmmaintypeenvelopes|\mmmaintypelabels|\mmmaintypeletters|\mmmaintypeemail|\mmmaintypefax -->
+    <choice>
+      <flag name="mmmaintypecatalog"/>
+      <flag name="mmmaintypeenvelopes"/>
+      <flag name="mmmaintypelabels"/>
+      <flag name="mmmaintypeletters"/>
+      <flag name="mmmaintypeemail"/>
+      <flag name="mmmaintypefax"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="mmdatatype">
+    <!--\mmdatatypeaccess | \mmdatatypeexcel | \mmdatatypeqt | \mmdatatypeodbc | \mmdatatypeodso | \mmdatatypefile-->
+    <!--\mmdatatypeaccess | \mmdatatypeexcel | \mmdatatypeqt | \mmdatatypeodbc | \mmdatatypeodso | \mmdatatypefile-->
+    <!--\mmdatatypeaccess|\mmdatatypeexcel|\mmdatatypeqt|\mmdatatypeodbc|\mmdatatypeodso|\mmdatatypefile-->
+    <choice>
+      <flag name="mmdatatypeaccess"/>
+      <flag name="mmdatatypeexcel"/>
+      <flag name="mmdatatypeqt"/>
+      <flag name="mmdatatypeodbc"/>
+      <flag name="mmdatatypeodso"/>
+      <flag name="mmdatatypefile"/>
+    </choice>
+  </define>
+  <define name="mmconnectstrdata">
+    <!--'{' \mmconnectstrdata #SDATA '}'-->
+    <!--'{' \mmconnectstrdata #SDATA '}'-->
+    <!--'{'\mmconnectstrdata#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmconnectstrdata"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmconnectstr">
+    <!--'{' \mmconnectstr #PCDATA '}'-->
+    <!--'{' \mmconnectstr #PCDATA '}'-->
+    <!--'{'\mmconnectstr#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmconnectstr"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmquery">
+    <!--'{' \mmquery #PCDATA '}'-->
+    <!--'{' \mmquery #PCDATA '}'-->
+    <!--'{'\mmquery#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmquery"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmdatasource">
+    <!--'{' \mmdatasource #PCDATA '}'-->
+    <!--'{' \mmdatasource #PCDATA '}'-->
+    <!--'{'\mmdatasource#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmdatasource"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmheadersource">
+    <!--'{' \mmheadersource #PCDATA '}'-->
+    <!--'{' \mmheadersource #PCDATA '}'-->
+    <!--'{'\mmheadersource#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmheadersource"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmdest">
+    <!--\mmdestnewdoc | \mmdestprinter | \mmdestemail | \mmdestfax-->
+    <!--\mmdestnewdoc | \mmdestprinter | \mmdestemail | \mmdestfax-->
+    <!--\mmdestnewdoc|\mmdestprinter|\mmdestemail|\mmdestfax-->
+    <choice>
+      <flag name="mmdestnewdoc"/>
+      <flag name="mmdestprinter"/>
+      <flag name="mmdestemail"/>
+      <flag name="mmdestfax"/>
+    </choice>
+  </define>
+  <define name="mmaddfieldname">
+    <!--'{' \mmaddfieldname #PCDATA '}'-->
+    <!--'{' \mmaddfieldname #PCDATA '}'-->
+    <!--'{'\mmaddfieldname#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmaddfieldname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmmailsubject">
+    <!--'{' \mmmailsubject #PCDATA '}'-->
+    <!--'{' \mmmailsubject #PCDATA '}'-->
+    <!--'{'\mmmailsubject#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmmailsubject"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodso">
+    <!--'{\*' \mmodso (<mmodsoudldata> | <mmodsoudl>)? <mmodsotable>? <mmodsosrc>? <mmodsofilter>? <mmodsosort>? <fldmpdata>? '}'-->
+    <!--'{' \*\mmodso (<mmodsoudldata> | <mmodsoudl>)? <mmodsotable>? <mmodsosrc>? <mmodsofilter>? <mmodsosort>? <fldmpdata>? '}'-->
+    <!--'{'\*\mmodso((<mmodsoudldata>|<mmodsoudl>)?)(<mmodsotable>?)(<mmodsosrc>?)(<mmodsofilter>?)(<mmodsosort>?)(<fldmpdata>?)'}'-->
+    <literal>{</literal>
+    <destination name="mmodso"/>
+    <optional>
+      <choice>
+        <ref name="mmodsoudldata"/>
+        <ref name="mmodsoudl"/>
+      </choice>
+    </optional>
+    <optional>
+      <ref name="mmodsotable"/>
+    </optional>
+    <optional>
+      <ref name="mmodsosrc"/>
+    </optional>
+    <optional>
+      <ref name="mmodsofilter"/>
+    </optional>
+    <optional>
+      <ref name="mmodsosort"/>
+    </optional>
+    <optional>
+      <ref name="fldmpdata"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsoudl">
+    <!--'{' \mmodsoudl #PCDATA '}'-->
+    <!--'{' \mmodsoudl #PCDATA '}'-->
+    <!--'{'\mmodsoudl#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmodsoudl"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsoudldata">
+    <!--'{' \mmodsoudldata #SDATA '}'-->
+    <!--'{' \mmodsoudldata #SDATA '}'-->
+    <!--'{'\mmodsoudldata#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmodsoudldata"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsotable">
+    <!--'{' \mmodsotable #PCDATA '}'-->
+    <!--'{' \mmodsotable #PCDATA '}'-->
+    <!--'{'\mmodsotable#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmodsotable"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsosrc">
+    <!--'{' \mmodsosrc #PCDATA '}'-->
+    <!--'{' \mmodsosrc #PCDATA '}'-->
+    <!--'{'\mmodsosrc#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmodsosrc"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsofilter">
+    <!--'{' \mmodsofilter #SDATA '}'-->
+    <!--'{' \mmodsofilter #SDATA '}'-->
+    <!--'{'\mmodsofilter#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmodsofilter"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsosort">
+    <!--'{' \mmodsofilter #SDATA '}'-->
+    <!--'{' \mmodsofilter #SDATA '}'-->
+    <!--'{'\mmodsofilter#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="mmodsofilter"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="fldmpdata">
+    <!--'{\*' \mmodsofldmpdata <mmfttype>? <mmodsoname>? <mmodsomappedname>? \mmodsofmcolumnN \mmodsodynaddrN \mmodsolidN '}'-->
+    <!--'{' \*\mmodsofldmpdata <mmfttype>? <mmodsoname>? <mmodsomappedname>? \mmodsofmcolumnN \mmodsodynaddrN \mmodsolidN '}'-->
+    <!--'{'\*\mmodsofldmpdata(<mmfttype>?)(<mmodsoname>?)(<mmodsomappedname>?)\mmodsofmcolumnN\mmodsodynaddrN\mmodsolidN'}'-->
+    <literal>{</literal>
+    <destination name="mmodsofldmpdata"/>
+    <optional>
+      <ref name="mmfttype"/>
+    </optional>
+    <optional>
+      <ref name="mmodsoname"/>
+    </optional>
+    <optional>
+      <ref name="mmodsomappedname"/>
+    </optional>
+    <control name="mmodsofmcolumn"/>
+    <control name="mmodsodynaddr"/>
+    <control name="mmodsolid"/>
+    <literal>}</literal>
+  </define>
+  <define name="mmfttype">
+    <!--\mmfttypenull | \mmfttypedbcolumn | \mmfttypeaddress | \mmfttypesalutation | \mmfttypemapped | \mmfttypebarcode-->
+    <!--\mmfttypenull | \mmfttypedbcolumn | \mmfttypeaddress | \mmfttypesalutation | \mmfttypemapped | \mmfttypebarcode-->
+    <!--\mmfttypenull|\mmfttypedbcolumn|\mmfttypeaddress|\mmfttypesalutation|\mmfttypemapped|\mmfttypebarcode-->
+    <choice>
+      <control name="mmfttypenull"/>
+      <control name="mmfttypedbcolumn"/>
+      <control name="mmfttypeaddress"/>
+      <control name="mmfttypesalutation"/>
+      <control name="mmfttypemapped"/>
+      <control name="mmfttypebarcode"/>
+    </choice>
+  </define>
+  <define name="mmodsoname">
+    <!--'{' \mmodsoname #PCDATA '}'-->
+    <!--'{' \mmodsoname #PCDATA '}'-->
+    <!--'{'\mmodsoname#PCDATA'}'-->
+    <literal>{</literal>
+    <control name="mmodsoname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsomappedname">
+    <!--'{' \mmodsomappedname #PCDATA '}'-->
+    <!--'{' \mmodsomappedname #PCDATA '}'-->
+    <!--'{'\mmodsomappedname#PCDATA'}'-->
+    <literal>{</literal>
+    <control name="mmodsomappedname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsorecipdata">
+    <!--'{\*' \mmodsorecipdata \mmodsoactiveN <uniqueid> '}'-->
+    <!--'{' \*\mmodsorecipdata \mmodsoactiveN <uniqueid> '}'-->
+    <!--'{'\*\mmodsorecipdata\mmodsoactiveN<uniqueid>'}'-->
+    <literal>{</literal>
+    <destination name="mmodsorecipdata"/>
+    <control name="mmodsoactive"/>
+    <ref name="uniqueid"/>
+    <literal>}</literal>
+  </define>
+  <define name="uniqueid">
+    <!--'{' \mmodsohashN | \mmodsocolumnN & <mmodsouniquetag> '}'-->
+    <!--'{' \mmodsohashN | \mmodsocolumnN & <mmodsouniquetag> '}'-->
+    <!--'{'\mmodsohashN|\mmodsocolumnN&<mmodsouniquetag>'}'-->
+    <literal>{</literal>
+    <any>
+      <choice>
+        <control name="mmodsohash"/>
+        <control name="mmodsocolumn"/>
+      </choice>
+      <ref name="mmodsouniquetag"/>
+    </any>
+    <literal>}</literal>
+  </define>
+  <define name="mmodsouniquetag">
+    <!--'{' \mmodsouniquetag #PCDATA ' }'-->
+    <!--'{' \mmodsouniquetag #PCDATA ' }'-->
+    <!--'{'\mmodsouniquetag#PCDATA' }'-->
+    <literal>{</literal>
+    <control name="mmodsouniquetag"/>
+    <pcdata/>
+    <literal> }</literal>
+  </define>
+  <define name="section">
+    <!-- <secfmt>* <hdrftr>? <para>+ (\sect <section>)?-->
+    <!-- <secfmt>* <hdrftr>? <para>+ (\sect <section>)?-->
+    <!--(<secfmt>*)(<hdrftr>?)(<para>+)((\sect<section>)?)-->
+    <zero-or-more>
+      <ref name="secfmt"/>
+    </zero-or-more>
+    <optional>
+      <ref name="hdrftr"/>
+    </optional>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <optional>
+      <symbol name="sect"/>
+      <ref name="section"/>
+    </optional>
+  </define>
+  <define name="hdrftr">
+    <!--'{' <hdrctl> <para>+ '}' <hdrftr>?-->
+    <!--'{' <hdrctl> <para>+ '}' <hdrftr>?-->
+    <!--'{'<hdrctl>(<para>+)'}'(<hdrftr>?)-->
+    <literal>{</literal>
+    <ref name="hdrctl"/>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <literal>}</literal>
+    <optional>
+      <ref name="hdrftr"/>
+    </optional>
+  </define>
+  <define name="hdrctl">
+    <!--\header | \footer | \headerl | \headerr | \headerf | \footerl | \footerr | \footerf-->
+    <!--\header | \footer | \headerl | \headerr | \headerf | \footerl | \footerr | \footerf-->
+    <!--\header|\footer|\headerl|\headerr|\headerf|\footerl|\footerr|\footerf-->
+    <choice>
+      <destination name="header"/>
+      <destination name="footer"/>
+      <destination name="headerl"/>
+      <destination name="headerr"/>
+      <destination name="headerf"/>
+      <destination name="footerl"/>
+      <destination name="footerr"/>
+      <destination name="footerf"/>
+    </choice>
+  </define>
+  <define name="para">
+    <!--<textpar> | <row>-->
+    <!--<textpar> | <row>-->
+    <!--<textpar>|<row>-->
+    <choice>
+      <ref name="textpar"/>
+      <ref name="row"/>
+    </choice>
+  </define>
+  <define name="textpar">
+    <!--<pn>? <brdrdef>? <parfmt>* <apoctl>* <tabdef>? <shading>? (\v \spv)? (\subdocumentN | <char>+) (\par <para>)?-->
+    <!--<pn>? <brdrdef>? <parfmt>* <apoctl>* <tabdef>? <shading>? (\v \spv)? (\subdocumentN | <char>+) (\par <para>)?-->
+    <!--(<pn>?)(<brdrdef>?)(<parfmt>*)(<apoctl>*)(<tabdef>?)(<shading>?)((\v\spv)?)(\subdocumentN|(<char>+))((\par<para>)?)-->
+    <optional>
+      <ref name="pn"/>
+    </optional>
+    <optional>
+      <ref name="brdrdef"/>
+    </optional>
+    <zero-or-more>
+      <ref name="parfmt"/>
+    </zero-or-more>
+    <zero-or-more>
+      <ref name="apoctl"/>
+    </zero-or-more>
+    <optional>
+      <ref name="tabdef"/>
+    </optional>
+    <optional>
+      <ref name="shading"/>
+    </optional>
+    <optional>
+      <toggle name="v"/>
+      <flag name="spv"/>
+    </optional>
+    <choice>
+      <value name="subdocument"/>
+      <one-or-more>
+        <ref name="char"/>
+      </one-or-more>
+    </choice>
+    <optional>
+      <symbol name="par"/>
+      <ref name="para"/>
+    </optional>
+  </define>
+  <define name="row">
+    <!--(<tbldef> <cell>+ <tbldef> \row) | (<tbldef> <cell>+ \row) | (<cell>+ <tbldef> \row)-->
+    <!--(<tbldef> <cell>+ <tbldef> \row) | (<tbldef> <cell>+ \row) | (<cell>+ <tbldef> \row)-->
+    <!--(<tbldef>(<cell>+)<tbldef>\row)|(<tbldef>(<cell>+)\row)|((<cell>+)<tbldef>\row)-->
+    <choice>
+      <ref name="tbldef"/>
+      <one-or-more>
+        <ref name="cell"/>
+      </one-or-more>
+      <ref name="tbldef"/>
+      <symbol name="row"/>
+      <ref name="tbldef"/>
+      <one-or-more>
+        <ref name="cell"/>
+      </one-or-more>
+      <symbol name="row"/>
+      <one-or-more>
+        <ref name="cell"/>
+      </one-or-more>
+      <ref name="tbldef"/>
+      <symbol name="row"/>
+    </choice>
+  </define>
+  <define name="cell">
+    <!--(<nestrow>? <tbldef>?) & <textpar>+ \cell-->
+    <!--(<nestrow>? <tbldef>?) & <textpar>+ \cell-->
+    <!--((<nestrow>?)(<tbldef>?))&(<textpar>+)\cell-->
+    <any>
+      <optional>
+        <ref name="nestrow"/>
+      </optional>
+      <optional>
+        <ref name="tbldef"/>
+      </optional>
+      <one-or-more>
+        <ref name="textpar"/>
+      </one-or-more>
+    </any>
+    <symbol name="cell"/>
+  </define>
+  <define name="nestrow">
+    <!--<nestcell>+ '{\*' \nesttableprops <tbldef> \nestrow '}'-->
+    <!--<nestcell>+ '{\*' \nesttableprops <tbldef> \nestrow '}'-->
+    <!--(<nestcell>+)'{\*'\nesttableprops<tbldef>\nestrow'}'-->
+    <one-or-more>
+      <ref name="nestcell"/>
+    </one-or-more>
+    <literal>{\*</literal>
+    <destination name="nesttableprops"/>
+    <ref name="tbldef"/>
+    <symbol name="nestrow"/>
+    <literal>}</literal>
+  </define>
+  <define name="nestcell">
+    <!--<textpar>+ \nestcell-->
+    <!--<textpar>+ \nestcell-->
+    <!--(<textpar>+)\nestcell-->
+    <one-or-more>
+      <ref name="textpar"/>
+    </one-or-more>
+    <symbol name="nestcell"/>
+  </define>
+  <define name="tabdef">
+    <!--(<tab> | <bartab>)+-->
+    <!--(<tab> | <bartab>)+-->
+    <!--((<tab>|<bartab>)+)-->
+    <one-or-more>
+      <choice>
+        <ref name="tab"/>
+        <ref name="bartab"/>
+      </choice>
+    </one-or-more>
+  </define>
+  <define name="tab">
+    <!--<tabkind>? <tablead>? \txN-->
+    <!--<tabkind>? <tablead>? \txN-->
+    <!--(<tabkind>?)(<tablead>?)\txN-->
+    <optional>
+      <ref name="tabkind"/>
+    </optional>
+    <optional>
+      <ref name="tablead"/>
+    </optional>
+    <value name="tx"/>
+  </define>
+  <define name="bartab">
+    <!--<tablead>? \tbN-->
+    <!--<tablead>? \tbN-->
+    <!--(<tablead>?)\tbN-->
+    <optional>
+      <ref name="tablead"/>
+    </optional>
+    <value name="tb"/>
+  </define>
+  <define name="tabkind">
+    <!--\tqr | \tqc | \tqdec -->
+    <!--\tqr | \tqc | \tqdec -->
+    <!--\tqr|\tqc|\tqdec -->
+    <choice>
+      <flag name="tqr"/>
+      <flag name="tqc"/>
+      <flag name="tqdec"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="tablead">
+    <!--\tldot | \tlmdot | \tlhyph | \tlul | \tlth | \tleq-->
+    <!--\tldot | \tlmdot | \tlhyph | \tlul | \tlth | \tleq-->
+    <!--\tldot|\tlmdot|\tlhyph|\tlul|\tlth|\tleq-->
+    <choice>
+      <flag name="tldot"/>
+      <flag name="tlmdot"/>
+      <flag name="tlhyph"/>
+      <flag name="tlul"/>
+      <flag name="tlth"/>
+      <flag name="tleq"/>
+    </choice>
+  </define>
+  <define name="ptab">
+    <!--'{' <ptableadding>? <relto> '}'-->
+    <!--'{' <ptableadding>? <relto> '}'-->
+    <!--'{'(<ptableadding>?)<relto>'}'-->
+    <literal>{</literal>
+    <optional>
+      <ref name="ptableadding"/>
+    </optional>
+    <ref name="relto"/>
+    <literal>}</literal>
+  </define>
+  <define name="ptableadding">
+    <!--\ptablnone | \ptabldot | \ptablminus | \ptabluscore | \ptablmdot-->
+    <!--\ptablnone | \ptabldot | \ptablminus | \ptabluscore | \ptablmdot-->
+    <!--\ptablnone|\ptabldot|\ptablminus|\ptabluscore|\ptablmdot-->
+    <choice>
+      <flag name="ptablnone"/>
+      <flag name="ptabldot"/>
+      <flag name="ptablminus"/>
+      <flag name="ptabluscore"/>
+      <flag name="ptablmdot"/>
+    </choice>
+  </define>
+  <define name="relto">
+    <!--<reltomargin> | <reltoindent>-->
+    <!--<reltomargin> | <reltoindent>-->
+    <!--<reltomargin>|<reltoindent>-->
+    <choice>
+      <ref name="reltomargin"/>
+      <ref name="reltoindent"/>
+    </choice>
+  </define>
+  <define name="reltomargin">
+    <!--\pmartabql | \pmartabqc | \pmartabqr -->
+    <!--\pmartabql | \pmartabqc | \pmartabqr -->
+    <!--\pmartabql|\pmartabqc|\pmartabqr -->
+    <choice>
+      <flag name="pmartabql"/>
+      <flag name="pmartabqc"/>
+      <flag name="pmartabqr"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="reltoindend">
+    <!--\pindtabql | \pindtabqc | \pindtabqr-->
+    <!--\pindtabql | \pindtabqc | \pindtabqr-->
+    <!--\pindtabql|\pindtabqc|\pindtabqr-->
+    <choice>
+      <flag name="pindtabql"/>
+      <flag name="pindtabqc"/>
+      <flag name="pindtabqr"/>
+    </choice>
+  </define>
+  <define name="pn">
+    <!--<pnseclvl> | <pnpara>-->
+    <!--<pnseclvl> | <pnpara>-->
+    <!--<pnseclvl>|<pnpara>-->
+    <choice>
+      <ref name="pnseclvl"/>
+      <ref name="pnpara"/>
+    </choice>
+  </define>
+  <define name="pnseclvl">
+    <!--'{\*' \pnseclvlN <pndesc> '}'-->
+    <!--'{' \*\pnseclvlN <pndesc> '}'-->
+    <!--'{'\*\pnseclvlN<pndesc>'}'-->
+    <literal>{</literal>
+    <destination name="pnseclvl"/>
+    <ref name="pndesc"/>
+    <literal>}</literal>
+  </define>
+  <define name="pnpara">
+    <!--<pntext> <pnprops>-->
+    <!--<pntext> <pnprops>-->
+    <!--<pntext><pnprops>-->
+    <ref name="pntext"/>
+    <ref name="pnprops"/>
+  </define>
+  <define name="pntext">
+    <!--'{' \pntext <char> '}'-->
+    <!--'{' \pntext <char> '}'-->
+    <!--'{'\pntext<char>'}'-->
+    <literal>{</literal>
+    <destination name="pntext"/>
+    <ref name="char"/>
+    <literal>}</literal>
+  </define>
+  <define name="pnprops">
+    <!--'{\*' \pn <pnlevel> <pndesc> '}'-->
+    <!--'{' \*\pn <pnlevel> <pndesc> '}'-->
+    <!--'{'\*\pn<pnlevel><pndesc>'}'-->
+    <literal>{</literal>
+    <destination name="pn"/>
+    <ref name="pnlevel"/>
+    <ref name="pndesc"/>
+    <literal>}</literal>
+  </define>
+  <define name="pnlevel">
+    <!--\pnlvlN | \pnlvlblt | \pnlvlbody | \pnlvlcont-->
+    <!--\pnlvlN | \pnlvlblt | \pnlvlbody | \pnlvlcont-->
+    <!--\pnlvlN|\pnlvlblt|\pnlvlbody|\pnlvlcont-->
+    <choice>
+      <value name="pnlvl"/>
+      <flag name="pnlvlblt"/>
+      <flag name="pnlvlbody"/>
+      <flag name="pnlvlcont"/>
+    </choice>
+  </define>
+  <define name="pndesc">
+    <!--<pnnstyle> & <pnchrfmt> & <pntxtb> & <pntxta> & <pnfmt>-->
+    <!--<pnnstyle> & <pnchrfmt> & <pntxtb> & <pntxta> & <pnfmt>-->
+    <!--<pnnstyle>&<pnchrfmt>&<pntxtb>&<pntxta>&<pnfmt>-->
+    <any>
+      <ref name="pnnstyle"/>
+      <ref name="pnchrfmt"/>
+      <ref name="pntxtb"/>
+      <ref name="pntxta"/>
+      <ref name="pnfmt"/>
+    </any>
+  </define>
+  <define name="pnnstyle">
+    <!--\pncard | \pndec | \pnucltr | \pnucrm | \pnlcltr | \pnlcrm | \pnord | \pnordt | \pnbidia | \pnbidib | \pnaiu | \pnaiud | \pnaiueo | \pnaiueod | \pnchosung |\pncnum | \pndbnum | \pndbnumd | \pndbnumk | \pndbnuml | \pndbnumt | \pndecd | \pnganada | \pngbnum | \pngbnumd | \pngbnumk | \pngbnuml | \pniroha | \pnirohad | \pnuldash | \pnuldashd | \pnuldashdd | \pnulhair | \pnulth | \pnulwave | \pnzodiac | \pnzodiacd | \pnzodiacl-->
+    <!--\pncard | \pndec | \pnucltr | \pnucrm | \pnlcltr | \pnlcrm | \pnord | \pnordt | \pnbidia | \pnbidib | \pnaiu | \pnaiud | \pnaiueo | \pnaiueod | \pnchosung |\pncnum | \pndbnum | \pndbnumd | \pndbnumk | \pndbnuml | \pndbnumt | \pndecd | \pnganada | \pngbnum | \pngbnumd | \pngbnumk | \pngbnuml | \pniroha | \pnirohad | \pnuldash | \pnuldashd | \pnuldashdd | \pnulhair | \pnulth | \pnulwave | \pnzodiac | \pnzodiacd | \pnzodiacl-->
+    <!--\pncard|\pndec|\pnucltr|\pnucrm|\pnlcltr|\pnlcrm|\pnord|\pnordt|\pnbidia|\pnbidib|\pnaiu|\pnaiud|\pnaiueo|\pnaiueod|\pnchosung|\pncnum|\pndbnum|\pndbnumd|\pndbnumk|\pndbnuml|\pndbnumt|\pndecd|\pnganada|\pngbnum|\pngbnumd|\pngbnumk|\pngbnuml|\pniroha|\pnirohad|\pnuldash|\pnuldashd|\pnuldashdd|\pnulhair|\pnulth|\pnulwave|\pnzodiac|\pnzodiacd|\pnzodiacl-->
+    <choice>
+      <flag name="pncard"/>
+      <flag name="pndec"/>
+      <flag name="pnucltr"/>
+      <flag name="pnucrm"/>
+      <flag name="pnlcltr"/>
+      <flag name="pnlcrm"/>
+      <flag name="pnord"/>
+      <flag name="pnordt"/>
+      <flag name="pnbidia"/>
+      <flag name="pnbidib"/>
+      <flag name="pnaiu"/>
+      <flag name="pnaiud"/>
+      <flag name="pnaiueo"/>
+      <flag name="pnaiueod"/>
+      <flag name="pnchosung"/>
+      <flag name="pncnum"/>
+      <flag name="pndbnum"/>
+      <flag name="pndbnumd"/>
+      <flag name="pndbnumk"/>
+      <flag name="pndbnuml"/>
+      <flag name="pndbnumt"/>
+      <flag name="pndecd"/>
+      <flag name="pnganada"/>
+      <flag name="pngbnum"/>
+      <flag name="pngbnumd"/>
+      <flag name="pngbnumk"/>
+      <flag name="pngbnuml"/>
+      <flag name="pniroha"/>
+      <flag name="pnirohad"/>
+      <flag name="pnuldash"/>
+      <flag name="pnuldashd"/>
+      <flag name="pnuldashdd"/>
+      <flag name="pnulhair"/>
+      <flag name="pnulth"/>
+      <flag name="pnulwave"/>
+      <flag name="pnzodiac"/>
+      <flag name="pnzodiacd"/>
+      <flag name="pnzodiacl"/>
+    </choice>
+  </define>
+  <define name="pnchrfmt">
+    <!--\pnfN? & \pnfsN? & \pnb? & \pni? & \pncaps? & \pnscaps? & <pnul>? & \pnstrike? & \pncfN?-->
+    <!--\pnfN? & \pnfsN? & \pnb? & \pni? & \pncaps? & \pnscaps? & <pnul>? & \pnstrike? & \pncfN?-->
+    <!--(\pnfN?)&(\pnfsN?)&(\pnb?)&(\pni?)&(\pncaps?)&(\pnscaps?)&(<pnul>?)&(\pnstrike?)&(\pncfN?)-->
+    <any>
+      <optional>
+        <value name="pnf"/>
+      </optional>
+      <optional>
+        <value name="pnfs"/>
+      </optional>
+      <optional>
+        <toggle name="pnb"/>
+      </optional>
+      <optional>
+        <toggle name="pni"/>
+      </optional>
+      <optional>
+        <toggle name="pncaps"/>
+      </optional>
+      <optional>
+        <toggle name="pnscaps"/>
+      </optional>
+      <optional>
+        <ref name="pnul"/>
+      </optional>
+      <optional>
+        <toggle name="pnstrike"/>
+      </optional>
+      <optional>
+        <value name="pncf"/>
+      </optional>
+    </any>
+  </define>
+  <define name="pnul">
+    <!--\pnul | \pnuld | \pnuldb | \pnulnone | \pnulw-->
+    <!--\pnul | \pnuld | \pnuldb | \pnulnone | \pnulw-->
+    <!--\pnul|\pnuld|\pnuldb|\pnulnone|\pnulw-->
+    <choice>
+      <toggle name="pnul"/>
+      <flag name="pnuld"/>
+      <flag name="pnuldb"/>
+      <flag name="pnulnone"/>
+      <flag name="pnulw"/>
+    </choice>
+  </define>
+  <define name="pnfmt">
+    <!--\pnnumonce? & \pnacross? & \pnindentN? & \pnspN? & \pnprev? & <pnjust>? &\pnstartN? & \pnhang? & \pnrestart?-->
+    <!--\pnnumonce? & \pnacross? & \pnindentN? & \pnspN? & \pnprev? & <pnjust>? &\pnstartN? & \pnhang? & \pnrestart?-->
+    <!--(\pnnumonce?)&(\pnacross?)&(\pnindentN?)&(\pnspN?)&(\pnprev?)&(<pnjust>?)&(\pnstartN?)&(\pnhang?)&(\pnrestart?)-->
+    <any>
+      <optional>
+        <flag name="pnnumonce"/>
+      </optional>
+      <optional>
+        <flag name="pnacross"/>
+      </optional>
+      <optional>
+        <value name="pnindent"/>
+      </optional>
+      <optional>
+        <value name="pnsp"/>
+      </optional>
+      <optional>
+        <flag name="pnprev"/>
+      </optional>
+      <optional>
+        <ref name="pnjust"/>
+      </optional>
+      <optional>
+        <value name="pnstart"/>
+      </optional>
+      <optional>
+        <flag name="pnhang"/>
+      </optional>
+      <optional>
+        <flag name="pnrestart"/>
+      </optional>
+    </any>
+  </define>
+  <define name="pnjust">
+    <!--\pnqc | \pnql | \pnqr-->
+    <!--\pnqc | \pnql | \pnqr-->
+    <!--\pnqc|\pnql|\pnqr-->
+    <choice>
+      <flag name="pnqc"/>
+      <flag name="pnql"/>
+      <flag name="pnqr"/>
+    </choice>
+  </define>
+  <define name="pntxtb">
+    <!--'{' \pntxtb #PCDATA '}'-->
+    <!--'{' \pntxtb #PCDATA '}'-->
+    <!--'{'\pntxtb#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="pntxtb"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="pntxta">
+    <!--'{' \pntxta #PCDATA '}'-->
+    <!--'{' \pntxta #PCDATA '}'-->
+    <!--'{'\pntxta#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="pntxta"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="brdrdef">
+    <!--(<brdrseg> <brdr> )+-->
+    <!--(<brdrseg> <brdr> )+-->
+    <!--((<brdrseg><brdr> )+)-->
+    <one-or-more>
+      <ref name="brdrseg"/>
+      <ref name="brdr"/>
+      <notoken> </notoken>
+    </one-or-more>
+  </define>
+  <define name="brdrseg">
+    <!--\brdrt | \brdrb | \brdrl | \brdrr | \brdrbtw | \brdrbar | \box-->
+    <!--\brdrt | \brdrb | \brdrl | \brdrr | \brdrbtw | \brdrbar | \box-->
+    <!--\brdrt|\brdrb|\brdrl|\brdrr|\brdrbtw|\brdrbar|\box-->
+    <choice>
+      <flag name="brdrt"/>
+      <flag name="brdrb"/>
+      <flag name="brdrl"/>
+      <flag name="brdrr"/>
+      <flag name="brdrbtw"/>
+      <flag name="brdrbar"/>
+      <flag name="box"/>
+    </choice>
+  </define>
+  <define name="brdr">
+    <!--<brdrk> \brdrwN? \brspN? \brdrcfN?-->
+    <!--<brdrk> \brdrwN? \brspN? \brdrcfN?-->
+    <!--<brdrk>(\brdrwN?)(\brspN?)(\brdrcfN?)-->
+    <ref name="brdrk"/>
+    <optional>
+      <value name="brdrw"/>
+    </optional>
+    <optional>
+      <value name="brsp"/>
+    </optional>
+    <optional>
+      <value name="brdrcf"/>
+    </optional>
+  </define>
+  <define name="brdrk">
+    <!--\brdrs | \brdrth | \brdrsh | \brdrdb | \brdrdot | \brdrdash | \brdrhair | \brdrinset | \brdrdashsm | \brdrdashd | \brdrdashdd | \brdrdashdot | \brdrdashdotdot | \brdrtriple | \brdrtnthsg | \brdrthtnsg | \brdrtnthtnsg | \brdrtnthmg | \brdrthtnmg | \brdrtnthtnmg | \brdrtnthlg | \brdrthtnlg | \brdrtnthtnlg | \brdrwavy | \brdrwavydb | \brdrdashdotstr | \brdremboss | \brdrengrave \brdroutset | \brdrnone | \brdrtbl | \brdrnil-->
+    <!--\brdrs | \brdrth | \brdrsh | \brdrdb | \brdrdot | \brdrdash | \brdrhair | \brdrinset | \brdrdashsm | \brdrdashd | \brdrdashdd | \brdrdashdot | \brdrdashdotdot | \brdrtriple | \brdrtnthsg | \brdrthtnsg | \brdrtnthtnsg | \brdrtnthmg | \brdrthtnmg | \brdrtnthtnmg | \brdrtnthlg | \brdrthtnlg | \brdrtnthtnlg | \brdrwavy | \brdrwavydb | \brdrdashdotstr | \brdremboss | \brdrengrave \brdroutset | \brdrnone | \brdrtbl | \brdrnil-->
+    <!--\brdrs|\brdrth|\brdrsh|\brdrdb|\brdrdot|\brdrdash|\brdrhair|\brdrinset|\brdrdashsm|\brdrdashd|\brdrdashdd|\brdrdashdot|\brdrdashdotdot|\brdrtriple|\brdrtnthsg|\brdrthtnsg|\brdrtnthtnsg|\brdrtnthmg|\brdrthtnmg|\brdrtnthtnmg|\brdrtnthlg|\brdrthtnlg|\brdrtnthtnlg|\brdrwavy|\brdrwavydb|\brdrdashdotstr|\brdremboss|\brdrengrave\brdroutset|\brdrnone|\brdrtbl|\brdrnil-->
+    <choice>
+      <flag name="brdrs"/>
+      <flag name="brdrth"/>
+      <flag name="brdrsh"/>
+      <flag name="brdrdb"/>
+      <flag name="brdrdot"/>
+      <flag name="brdrdash"/>
+      <flag name="brdrhair"/>
+      <flag name="brdrinset"/>
+      <flag name="brdrdashsm"/>
+      <flag name="brdrdashd"/>
+      <flag name="brdrdashdd"/>
+      <flag name="brdrdashdot"/>
+      <flag name="brdrdashdotdot"/>
+      <flag name="brdrtriple"/>
+      <flag name="brdrtnthsg"/>
+      <flag name="brdrthtnsg"/>
+      <flag name="brdrtnthtnsg"/>
+      <flag name="brdrtnthmg"/>
+      <flag name="brdrthtnmg"/>
+      <flag name="brdrtnthtnmg"/>
+      <flag name="brdrtnthlg"/>
+      <flag name="brdrthtnlg"/>
+      <flag name="brdrtnthtnlg"/>
+      <flag name="brdrwavy"/>
+      <flag name="brdrwavydb"/>
+      <flag name="brdrdashdotstr"/>
+      <flag name="brdremboss"/>
+      <flag name="brdrengrave"/>
+    </choice>
+    <choice>
+      <flag name="brdroutset"/>
+      <flag name="brdrnone"/>
+      <flag name="brdrtbl"/>
+      <flag name="brdrnil"/>
+    </choice>
+  </define>
+  <define name="shading">
+    <!--(\shadingN | <pat>) \cfpatN? \cbpatN?-->
+    <!--(\shadingN | <pat>) \cfpatN? \cbpatN?-->
+    <!--(\shadingN|<pat>)(\cfpatN?)(\cbpatN?)-->
+    <choice>
+      <value name="shading"/>
+      <ref name="pat"/>
+    </choice>
+    <optional>
+      <value name="cfpat"/>
+    </optional>
+    <optional>
+      <value name="cbpat"/>
+    </optional>
+  </define>
+  <define name="pat">
+    <!--\bghoriz | \bgvert | \bgfdiag | \bgbdiag | \bgcross | \bgdcross | \bgdkhoriz | \bgdkvert | \bgdkfdiag | \bgdkbdiag | \bgdkcross | \bgdkdcross -->
+    <!--\bghoriz | \bgvert | \bgfdiag | \bgbdiag | \bgcross | \bgdcross | \bgdkhoriz | \bgdkvert | \bgdkfdiag | \bgdkbdiag | \bgdkcross | \bgdkdcross -->
+    <!--\bghoriz|\bgvert|\bgfdiag|\bgbdiag|\bgcross|\bgdcross|\bgdkhoriz|\bgdkvert|\bgdkfdiag|\bgdkbdiag|\bgdkcross|\bgdkdcross -->
+    <choice>
+      <flag name="bghoriz"/>
+      <flag name="bgvert"/>
+      <flag name="bgfdiag"/>
+      <flag name="bgbdiag"/>
+      <flag name="bgcross"/>
+      <flag name="bgdcross"/>
+      <flag name="bgdkhoriz"/>
+      <flag name="bgdkvert"/>
+      <flag name="bgdkfdiag"/>
+      <flag name="bgdkbdiag"/>
+      <flag name="bgdkcross"/>
+      <flag name="bgdkdcross"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="apoctl">
+    <!--<framesize> & <horzpos> & <vertpos> & <txtwrap> & <dropcap> & <txtflow> & \absnoovrlpN?-->
+    <!--<framesize> & <horzpos> & <vertpos> & <txtwrap> & <dropcap> & <txtflow> & \absnoovrlpN?-->
+    <!--<framesize>&<horzpos>&<vertpos>&<txtwrap>&<dropcap>&<txtflow>&(\absnoovrlpN?)-->
+    <any>
+      <ref name="framesize"/>
+      <ref name="horzpos"/>
+      <ref name="vertpos"/>
+      <ref name="txtwrap"/>
+      <ref name="dropcap"/>
+      <ref name="txtflow"/>
+      <optional>
+        <toggle name="absnoovrlp"/>
+      </optional>
+    </any>
+  </define>
+  <define name="framesize">
+    <!--\abswN? & \abshN?-->
+    <!--\abswN? & \abshN?-->
+    <!--(\abswN?)&(\abshN?)-->
+    <any>
+      <optional>
+        <value name="absw"/>
+      </optional>
+      <optional>
+        <value name="absh"/>
+      </optional>
+    </any>
+  </define>
+  <define name="horzpos">
+    <!--<hframe> & <hdist>-->
+    <!--<hframe> & <hdist>-->
+    <!--<hframe>&<hdist>-->
+    <any>
+      <ref name="hframe"/>
+      <ref name="hdist"/>
+    </any>
+  </define>
+  <define name="vertpos">
+    <!--<vframe> & <vdist>-->
+    <!--<vframe> & <vdist>-->
+    <!--<vframe>&<vdist>-->
+    <any>
+      <ref name="vframe"/>
+      <ref name="vdist"/>
+    </any>
+  </define>
+  <define name="txtwrap">
+    <!--\nowrap? & \dxfrtextN? & \dfrmtxtxN? & \dfrmtxtyN? & <wrap>?-->
+    <!--\nowrap? & \dxfrtextN? & \dfrmtxtxN? & \dfrmtxtyN? & <wrap>?-->
+    <!--(\nowrap?)&(\dxfrtextN?)&(\dfrmtxtxN?)&(\dfrmtxtyN?)&(<wrap>?)-->
+    <any>
+      <optional>
+        <flag name="nowrap"/>
+      </optional>
+      <optional>
+        <value name="dxfrtext"/>
+      </optional>
+      <optional>
+        <value name="dfrmtxtx"/>
+      </optional>
+      <optional>
+        <value name="dfrmtxty"/>
+      </optional>
+      <optional>
+        <ref name="wrap"/>
+      </optional>
+    </any>
+  </define>
+  <define name="wrap">
+    <!--\wrapdefault? | \wraparound? | \wraptight? | \wrapthrough?-->
+    <!--\wrapdefault? | \wraparound? | \wraptight? | \wrapthrough?-->
+    <!--(\wrapdefault?)|(\wraparound?)|(\wraptight?)|(\wrapthrough?)-->
+    <choice>
+      <optional>
+        <flag name="wrapdefault"/>
+      </optional>
+      <optional>
+        <flag name="wraparound"/>
+      </optional>
+      <optional>
+        <flag name="wraptight"/>
+      </optional>
+      <optional>
+        <flag name="wrapthrough"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="dropcap">
+    <!--\dropcapliN? & \dropcaptN?-->
+    <!--\dropcapliN? & \dropcaptN?-->
+    <!--(\dropcapliN?)&(\dropcaptN?)-->
+    <any>
+      <optional>
+        <value name="dropcapli"/>
+      </optional>
+      <optional>
+        <value name="dropcapt"/>
+      </optional>
+    </any>
+  </define>
+  <define name="hframe">
+    <!--\phmrg? | \phpg? | \phcol?-->
+    <!--\phmrg? | \phpg? | \phcol?-->
+    <!--(\phmrg?)|(\phpg?)|(\phcol?)-->
+    <choice>
+      <optional>
+        <flag name="phmrg"/>
+      </optional>
+      <optional>
+        <flag name="phpg"/>
+      </optional>
+      <optional>
+        <flag name="phcol"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="hdist">
+    <!--\posxN? | \posnegxN? | \posxc? | \posxi? | \posxo? | \posxl? | \posxr?-->
+    <!--\posxN? | \posnegxN? | \posxc? | \posxi? | \posxo? | \posxl? | \posxr?-->
+    <!--(\posxN?)|(\posnegxN?)|(\posxc?)|(\posxi?)|(\posxo?)|(\posxl?)|(\posxr?)-->
+    <choice>
+      <optional>
+        <value name="posx"/>
+      </optional>
+      <optional>
+        <value name="posnegx"/>
+      </optional>
+      <optional>
+        <flag name="posxc"/>
+      </optional>
+      <optional>
+        <flag name="posxi"/>
+      </optional>
+      <optional>
+        <flag name="posxo"/>
+      </optional>
+      <optional>
+        <flag name="posxl"/>
+      </optional>
+      <optional>
+        <flag name="posxr"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="vframe">
+    <!--\pvmrg? | \pvpg? | \pvpara?-->
+    <!--\pvmrg? | \pvpg? | \pvpara?-->
+    <!--(\pvmrg?)|(\pvpg?)|(\pvpara?)-->
+    <choice>
+      <optional>
+        <flag name="pvmrg"/>
+      </optional>
+      <optional>
+        <flag name="pvpg"/>
+      </optional>
+      <optional>
+        <flag name="pvpara"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="vdist">
+    <!--\posyN? | \posnegyN? | \posyt? | \posyil? | \posyb? | \posyc? | \posyin? | \posyout? & \abslockN?-->
+    <!--\posyN? | \posnegyN? | \posyt? | \posyil? | \posyb? | \posyc? | \posyin? | \posyout? & \abslockN?-->
+    <!--(\posyN?)|(\posnegyN?)|(\posyt?)|(\posyil?)|(\posyb?)|(\posyc?)|(\posyin?)|(\posyout?)&(\abslockN?)-->
+    <any>
+      <choice>
+        <choice>
+          <optional>
+            <value name="posy"/>
+          </optional>
+          <optional>
+            <value name="posnegy"/>
+          </optional>
+          <optional>
+            <flag name="posyt"/>
+          </optional>
+          <optional>
+            <flag name="posyil"/>
+          </optional>
+          <optional>
+            <flag name="posyb"/>
+          </optional>
+          <optional>
+            <flag name="posyc"/>
+          </optional>
+          <optional>
+            <flag name="posyin"/>
+          </optional>
+        </choice>
+        <optional>
+          <flag name="posyout"/>
+        </optional>
+      </choice>
+      <optional>
+        <flag name="abslock"/>
+      </optional>
+    </any>
+  </define>
+  <define name="txtflow">
+    <!--\frmtxlrtb | \frmtxtbrl | \frmtxbtlr | \frmtxlrtbv | \frmtxtbrlv-->
+    <!--\frmtxlrtb | \frmtxtbrl | \frmtxbtlr | \frmtxlrtbv | \frmtxtbrlv-->
+    <!--\frmtxlrtb|\frmtxtbrl|\frmtxbtlr|\frmtxlrtbv|\frmtxtbrlv-->
+    <choice>
+      <flag name="frmtxlrtb"/>
+      <flag name="frmtxtbrl"/>
+      <flag name="frmtxbtlr"/>
+      <flag name="frmtxlrtbv"/>
+      <flag name="frmtxtbrlv"/>
+    </choice>
+  </define>
+  <define name="row">
+    <!--(<tbldef> <cell>+ <tbldef> \row) | (<tbldef> <cell>+ \row) | (<cell>+ <tbldef> \row)-->
+    <!--(<tbldef> <cell>+ <tbldef> \row) | (<tbldef> <cell>+ \row) | (<cell>+ <tbldef> \row)-->
+    <!--(<tbldef>(<cell>+)<tbldef>\row)|(<tbldef>(<cell>+)\row)|((<cell>+)<tbldef>\row)-->
+    <choice>
+      <ref name="tbldef"/>
+      <one-or-more>
+        <ref name="cell"/>
+      </one-or-more>
+      <ref name="tbldef"/>
+      <symbol name="row"/>
+      <ref name="tbldef"/>
+      <one-or-more>
+        <ref name="cell"/>
+      </one-or-more>
+      <symbol name="row"/>
+      <one-or-more>
+        <ref name="cell"/>
+      </one-or-more>
+      <ref name="tbldef"/>
+      <symbol name="row"/>
+    </choice>
+  </define>
+  <define name="cell">
+    <!--(<nestrow>? <tbldef>?) & <textpar>+ \cell-->
+    <!--(<nestrow>? <tbldef>?) & <textpar>+ \cell-->
+    <!--((<nestrow>?)(<tbldef>?))&(<textpar>+)\cell-->
+    <any>
+      <optional>
+        <ref name="nestrow"/>
+      </optional>
+      <optional>
+        <ref name="tbldef"/>
+      </optional>
+      <one-or-more>
+        <ref name="textpar"/>
+      </one-or-more>
+    </any>
+    <symbol name="cell"/>
+  </define>
+  <define name="nestrow">
+    <!--<nestcell>+ '{\*' \nesttableprops <tbldef> \nestrow '}'-->
+    <!--<nestcell>+ '{\*' \nesttableprops <tbldef> \nestrow '}'-->
+    <!--(<nestcell>+)'{\*'\nesttableprops<tbldef>\nestrow'}'-->
+    <one-or-more>
+      <ref name="nestcell"/>
+    </one-or-more>
+    <literal>{\*</literal>
+    <destination name="nesttableprops"/>
+    <ref name="tbldef"/>
+    <symbol name="nestrow"/>
+    <literal>}</literal>
+  </define>
+  <define name="nestcell">
+    <!--<textpar>+ \nestcell-->
+    <!--<textpar>+ \nestcell-->
+    <!--(<textpar>+)\nestcell-->
+    <one-or-more>
+      <ref name="textpar"/>
+    </one-or-more>
+    <symbol name="nestcell"/>
+  </define>
+  <define name="tbldef">
+    <!--\trowd \irowN \irowbandN \tsN \trgaphN & <rowjust>? & <rowwrite>? & <rowtop>? & <rowbot>? & <rowleft>? & <rowright>? & <rowhor>? & <rowvert>? & <rowpos> ? & \trleftN? & \trrhN? \trhdr? & \trkeep? & <rowwidth>? & <rowinv>? & \trautofitN? & <rowspc>? & <rowpad>? & <rowspcout>? & <rowpadout>? & \taprtl? <trrevision>? <tflags>? <celldef>+-->
+    <!--\trowd \irowN \irowbandN \tsN \trgaphN & <rowjust>? & <rowwrite>? & <rowtop>? & <rowbot>? & <rowleft>? & <rowright>? & <rowhor>? & <rowvert>? & <rowpos> ? & \trleftN? & \trrhN? \trhdr? & \trkeep? & <rowwidth>? & <rowinv>? & \trautofitN? & <rowspc>? & <rowpad>? & <rowspcout>? & <rowpadout>? & \taprtl? <trrevision>? <tflags>? <celldef>+-->
+    <!--\trowd\irowN\irowbandN\tsN\trgaphN&(<rowjust>?)&(<rowwrite>?)&(<rowtop>?)&(<rowbot>?)&(<rowleft>?)&(<rowright>?)&(<rowhor>?)&(<rowvert>?)&(<rowpos>?)&(\trleftN?)&(\trrhN?)(\trhdr?)&(\trkeep?)&(<rowwidth>?)&(<rowinv>?)&(\trautofitN?)&(<rowspc>?)&(<rowpad>?)&(<rowspcout>?)&(<rowpadout>?)&(\taprtl?)(<trrevision>?)(<tflags>?)(<celldef>+)-->
+    <flag name="trowd"/>
+    <value name="irow"/>
+    <value name="irowband"/>
+    <value name="ts"/>
+    <any>
+      <value name="trgaph"/>
+      <optional>
+        <ref name="rowjust"/>
+      </optional>
+      <optional>
+        <ref name="rowwrite"/>
+      </optional>
+      <optional>
+        <ref name="rowtop"/>
+      </optional>
+      <optional>
+        <ref name="rowbot"/>
+      </optional>
+      <optional>
+        <ref name="rowleft"/>
+      </optional>
+      <optional>
+        <ref name="rowright"/>
+      </optional>
+      <optional>
+        <ref name="rowhor"/>
+      </optional>
+      <optional>
+        <ref name="rowvert"/>
+      </optional>
+      <optional>
+        <ref name="rowpos"/>
+      </optional>
+      <optional>
+        <value name="trleft"/>
+      </optional>
+      <optional>
+        <value name="trrh"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <flag name="trhdr"/>
+      </optional>
+      <optional>
+        <flag name="trkeep"/>
+      </optional>
+      <optional>
+        <ref name="rowwidth"/>
+      </optional>
+      <optional>
+        <ref name="rowinv"/>
+      </optional>
+      <optional>
+        <toggle name="trautofit"/>
+      </optional>
+      <optional>
+        <ref name="rowspc"/>
+      </optional>
+      <optional>
+        <ref name="rowpad"/>
+      </optional>
+      <optional>
+        <ref name="rowspcout"/>
+      </optional>
+      <optional>
+        <ref name="rowpadout"/>
+      </optional>
+      <optional>
+        <flag name="taprtl"/>
+      </optional>
+    </any>
+    <optional>
+      <ref name="trrevision"/>
+    </optional>
+    <optional>
+      <ref name="tflags"/>
+    </optional>
+    <one-or-more>
+      <ref name="celldef"/>
+    </one-or-more>
+  </define>
+  <define name="rowjust">
+    <!--\trql | \trqr | \trqc -->
+    <!--\trql | \trqr | \trqc -->
+    <!--\trql|\trqr|\trqc -->
+    <choice>
+      <flag name="trql"/>
+      <flag name="trqr"/>
+      <flag name="trqc"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="rowwrite">
+    <!--\ltrrow | \rtlrow-->
+    <!--\ltrrow | \rtlrow-->
+    <!--\ltrrow|\rtlrow-->
+    <choice>
+      <flag name="ltrrow"/>
+      <flag name="rtlrow"/>
+    </choice>
+  </define>
+  <define name="rowtop">
+    <!--\trbrdrt <brdr>-->
+    <!--\trbrdrt <brdr>-->
+    <!--\trbrdrt<brdr>-->
+    <flag name="trbrdrt"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="rowbot">
+    <!--\trbrdrb <brdr>-->
+    <!--\trbrdrb <brdr>-->
+    <!--\trbrdrb<brdr>-->
+    <flag name="trbrdrb"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="rowleft">
+    <!--\trbrdrl <brdr>-->
+    <!--\trbrdrl <brdr>-->
+    <!--\trbrdrl<brdr>-->
+    <flag name="trbrdrl"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="rowright">
+    <!--\trbrdrr <brdr>-->
+    <!--\trbrdrr <brdr>-->
+    <!--\trbrdrr<brdr>-->
+    <flag name="trbrdrr"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="rowhor">
+    <!--\trbrdrh <brdr>-->
+    <!--\trbrdrh <brdr>-->
+    <!--\trbrdrh<brdr>-->
+    <flag name="trbrdrh"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="rowvert">
+    <!--\trbrdrv <brdr>-->
+    <!--\trbrdrv <brdr>-->
+    <!--\trbrdrv<brdr>-->
+    <flag name="trbrdrv"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="rowpos">
+    <!--<rowhorzpos> & <rowvertpos> & <rowwrap> & \tabsnoovrlp?-->
+    <!--<rowhorzpos> & <rowvertpos> & <rowwrap> & \tabsnoovrlp?-->
+    <!--<rowhorzpos>&<rowvertpos>&<rowwrap>&(\tabsnoovrlp?)-->
+    <any>
+      <ref name="rowhorzpos"/>
+      <ref name="rowvertpos"/>
+      <ref name="rowwrap"/>
+      <optional>
+        <flag name="tabsnoovrlp"/>
+      </optional>
+    </any>
+  </define>
+  <define name="rowhorzpos">
+    <!--<rowhframe>& <rowhdist>-->
+    <!--<rowhframe>& <rowhdist>-->
+    <!--<rowhframe>&<rowhdist>-->
+    <any>
+      <ref name="rowhframe"/>
+      <ref name="rowhdist"/>
+    </any>
+  </define>
+  <define name="rowvertpos">
+    <!--<rowvframe>& <rowvdist>-->
+    <!--<rowvframe>& <rowvdist>-->
+    <!--<rowvframe>&<rowvdist>-->
+    <any>
+      <ref name="rowvframe"/>
+      <ref name="rowvdist"/>
+    </any>
+  </define>
+  <define name="rowwrap">
+    <!--\tdfrmtxtLeftN? & \tdfrmtxtRightN? & \tdfrmtxtTopN? & \tdfrmtxtBottomN?-->
+    <!--\tdfrmtxtLeftN? & \tdfrmtxtRightN? & \tdfrmtxtTopN? & \tdfrmtxtBottomN?-->
+    <!--(\tdfrmtxtLeftN?)&(\tdfrmtxtRightN?)&(\tdfrmtxtTopN?)&(\tdfrmtxtBottomN?)-->
+    <any>
+      <optional>
+        <value name="tdfrmtxtLeft"/>
+      </optional>
+      <optional>
+        <value name="tdfrmtxtRight"/>
+      </optional>
+      <optional>
+        <value name="tdfrmtxtTop"/>
+      </optional>
+      <optional>
+        <value name="tdfrmtxtBottom"/>
+      </optional>
+    </any>
+  </define>
+  <define name="rowhframe">
+    <!--\phmrg? | \phpg? | \phcol?-->
+    <!--\phmrg? | \phpg? | \phcol?-->
+    <!--(\phmrg?)|(\phpg?)|(\phcol?)-->
+    <choice>
+      <optional>
+        <flag name="phmrg"/>
+      </optional>
+      <optional>
+        <flag name="phpg"/>
+      </optional>
+      <optional>
+        <flag name="phcol"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="rowhdist">
+    <!--\tposxN? | \tposnegxN? | \tposxc? | \tposxi? | \tposxo? | \tposxl? | \tposxr?-->
+    <!--\tposxN? | \tposnegxN? | \tposxc? | \tposxi? | \tposxo? | \tposxl? | \tposxr?-->
+    <!--(\tposxN?)|(\tposnegxN?)|(\tposxc?)|(\tposxi?)|(\tposxo?)|(\tposxl?)|(\tposxr?)-->
+    <choice>
+      <optional>
+        <value name="tposx"/>
+      </optional>
+      <optional>
+        <value name="tposnegx"/>
+      </optional>
+      <optional>
+        <flag name="tposxc"/>
+      </optional>
+      <optional>
+        <flag name="tposxi"/>
+      </optional>
+      <optional>
+        <flag name="tposxo"/>
+      </optional>
+      <optional>
+        <flag name="tposxl"/>
+      </optional>
+      <optional>
+        <flag name="tposxr"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="rowvframe">
+    <!--\tpvmrg? | \tpvpg? | \tpvpara?-->
+    <!--\tpvmrg? | \tpvpg? | \tpvpara?-->
+    <!--(\tpvmrg?)|(\tpvpg?)|(\tpvpara?)-->
+    <choice>
+      <optional>
+        <flag name="tpvmrg"/>
+      </optional>
+      <optional>
+        <flag name="tpvpg"/>
+      </optional>
+      <optional>
+        <flag name="tpvpara"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="rowvdist">
+    <!--\tposyN? | \tposnegyN? | \tposyt? | \tposyil? | \tposyb? | \tposyc? | \tposyin | \tposyout -->
+    <!--\tposyN? | \tposnegyN? | \tposyt? | \tposyil? | \tposyb? | \tposyc? | \tposyin | \tposyout -->
+    <!--(\tposyN?)|(\tposnegyN?)|(\tposyt?)|(\tposyil?)|(\tposyb?)|(\tposyc?)|\tposyin|\tposyout -->
+    <choice>
+      <optional>
+        <value name="tposy"/>
+      </optional>
+      <optional>
+        <value name="tposnegy"/>
+      </optional>
+      <optional>
+        <flag name="tposyt"/>
+      </optional>
+      <optional>
+        <flag name="tposyil"/>
+      </optional>
+      <optional>
+        <flag name="tposyb"/>
+      </optional>
+      <optional>
+        <flag name="tposyc"/>
+      </optional>
+      <flag name="tposyin"/>
+      <flag name="tposyout"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="rowwidth">
+    <!--\trftsWidthN & \trwWidthN?-->
+    <!--\trftsWidthN & \trwWidthN?-->
+    <!--\trftsWidthN&(\trwWidthN?)-->
+    <any>
+      <value name="trftsWidth"/>
+      <optional>
+        <value name="trwWidth"/>
+      </optional>
+    </any>
+  </define>
+  <define name="rowinv">
+    <!--(\trftsWidthBN & \trwWidthBN?)? & (\trftsWidthAN & \trwWidthAN?)?-->
+    <!--(\trftsWidthBN & \trwWidthBN?)? & (\trftsWidthAN & \trwWidthAN?)?-->
+    <!--((\trftsWidthBN&(\trwWidthBN?))?)&((\trftsWidthAN&(\trwWidthAN?))?)-->
+    <any>
+      <optional>
+        <any>
+          <value name="trftsWidthB"/>
+          <optional>
+            <value name="trwWidthB"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trftsWidthA"/>
+          <optional>
+            <value name="trwWidthA"/>
+          </optional>
+        </any>
+      </optional>
+    </any>
+  </define>
+  <define name="rowspc">
+    <!--(\trspdlN & \trspdflN?)? & (\trspdtN & \trspdftN?)? & (\trspdbN & \trspdfbN?)? & (\trspdrN & \trspdfrN?)?-->
+    <!--(\trspdlN & \trspdflN?)? & (\trspdtN & \trspdftN?)? & (\trspdbN & \trspdfbN?)? & (\trspdrN & \trspdfrN?)?-->
+    <!--((\trspdlN&(\trspdflN?))?)&((\trspdtN&(\trspdftN?))?)&((\trspdbN&(\trspdfbN?))?)&((\trspdrN&(\trspdfrN?))?)-->
+    <any>
+      <optional>
+        <any>
+          <value name="trspdl"/>
+          <optional>
+            <value name="trspdfl"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trspdt"/>
+          <optional>
+            <value name="trspdft"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trspdb"/>
+          <optional>
+            <value name="trspdfb"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trspdr"/>
+          <optional>
+            <value name="trspdfr"/>
+          </optional>
+        </any>
+      </optional>
+    </any>
+  </define>
+  <define name="rowpad">
+    <!--(\trpaddlN & \trpaddflN?)? & (\trpaddtN & \trpaddftN?)? & (\trpaddbN & \trpaddfbN?)? & (\trpaddrN & \trpaddfrN?)?-->
+    <!--(\trpaddlN & \trpaddflN?)? & (\trpaddtN & \trpaddftN?)? & (\trpaddbN & \trpaddfbN?)? & (\trpaddrN & \trpaddfrN?)?-->
+    <!--((\trpaddlN&(\trpaddflN?))?)&((\trpaddtN&(\trpaddftN?))?)&((\trpaddbN&(\trpaddfbN?))?)&((\trpaddrN&(\trpaddfrN?))?)-->
+    <any>
+      <optional>
+        <any>
+          <value name="trpaddl"/>
+          <optional>
+            <value name="trpaddfl"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trpaddt"/>
+          <optional>
+            <value name="trpaddft"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trpaddb"/>
+          <optional>
+            <value name="trpaddfb"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trpaddr"/>
+          <optional>
+            <value name="trpaddfr"/>
+          </optional>
+        </any>
+      </optional>
+    </any>
+  </define>
+  <define name="rowspcout">
+    <!--(\trspolN & \trspoflN?)? & (\trspotN & \trspoftN?)? & (\trspobN & \trspofbN?)? & (\trsporN & \trspofrN?)?-->
+    <!--(\trspolN & \trspoflN?)? & (\trspotN & \trspoftN?)? & (\trspobN & \trspofbN?)? & (\trsporN & \trspofrN?)?-->
+    <!--((\trspolN&(\trspoflN?))?)&((\trspotN&(\trspoftN?))?)&((\trspobN&(\trspofbN?))?)&((\trsporN&(\trspofrN?))?)-->
+    <any>
+      <optional>
+        <any>
+          <value name="trspol"/>
+          <optional>
+            <value name="trspofl"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trspot"/>
+          <optional>
+            <value name="trspoft"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trspob"/>
+          <optional>
+            <value name="trspofb"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trspor"/>
+          <optional>
+            <value name="trspofr"/>
+          </optional>
+        </any>
+      </optional>
+    </any>
+  </define>
+  <define name="rowpadout">
+    <!--(\trpadolN & \trpadoflN?)? & (\trpadotN & \trpadoftN?)? & (\trpadobN & \trpadofbN?)? & (\trpadorN & \trpadofrN?)?-->
+    <!--(\trpadolN & \trpadoflN?)? & (\trpadotN & \trpadoftN?)? & (\trpadobN & \trpadofbN?)? & (\trpadorN & \trpadofrN?)?-->
+    <!--((\trpadolN&(\trpadoflN?))?)&((\trpadotN&(\trpadoftN?))?)&((\trpadobN&(\trpadofbN?))?)&((\trpadorN&(\trpadofrN?))?)-->
+    <any>
+      <optional>
+        <any>
+          <value name="trpadol"/>
+          <optional>
+            <value name="trpadofl"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trpadot"/>
+          <optional>
+            <value name="trpadoft"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trpadob"/>
+          <optional>
+            <value name="trpadofb"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="trpador"/>
+          <optional>
+            <value name="trpadofr"/>
+          </optional>
+        </any>
+      </optional>
+    </any>
+  </define>
+  <define name="trrevision">
+    <!--\trauthN \trdateN-->
+    <!--\trauthN \trdateN-->
+    <!--\trauthN\trdateN-->
+    <value name="trauth"/>
+    <value name="trdate"/>
+  </define>
+  <define name="tflags">
+    <!--\tbllkborder & \tbllkshading & \tbllkfont & \tbllkcolor & \tbllkbestfit & \tbllkhdrrows & \tbllklastrow & \tbllkhdrcols & \tbllklastcol & \tbllknorowband & \tbllknocolband-->
+    <!--\tbllkborder & \tbllkshading & \tbllkfont & \tbllkcolor & \tbllkbestfit & \tbllkhdrrows & \tbllklastrow & \tbllkhdrcols & \tbllklastcol & \tbllknorowband & \tbllknocolband-->
+    <!--\tbllkborder&\tbllkshading&\tbllkfont&\tbllkcolor&\tbllkbestfit&\tbllkhdrrows&\tbllklastrow&\tbllkhdrcols&\tbllklastcol&\tbllknorowband&\tbllknocolband-->
+    <any>
+      <flag name="tbllkborder"/>
+      <flag name="tbllkshading"/>
+      <flag name="tbllkfont"/>
+      <flag name="tbllkcolor"/>
+      <flag name="tbllkbestfit"/>
+      <flag name="tbllkhdrrows"/>
+      <flag name="tbllklastrow"/>
+      <flag name="tbllkhdrcols"/>
+      <flag name="tbllklastcol"/>
+      <flag name="tbllknorowband"/>
+      <flag name="tbllknocolband"/>
+    </any>
+  </define>
+  <define name="celldef">
+    <!--(\clmgf? & \clmrg? & \clvmgf? & \clvmrg? <celldgu>? & <celldgl>? & <cellalign>? & <celltop>? & <cellleft>? & <cellbot>? & <cellright>? & <cellshad>? & <cellflow>? & \clFitText? & \clNoWrap? & <cellwidth>? <cellrev>? & <cellins>? & <celldel>? & <cellpad>? & <cellsp>?) \cellxN-->
+    <!--(\clmgf? & \clmrg? & \clvmgf? & \clvmrg? <celldgu>? & <celldgl>? & <cellalign>? & <celltop>? & <cellleft>? & <cellbot>? & <cellright>? & <cellshad>? & <cellflow>? & \clFitText? & \clNoWrap? & <cellwidth>? <cellrev>? & <cellins>? & <celldel>? & <cellpad>? & <cellsp>?) \cellxN-->
+    <!--((\clmgf?)&(\clmrg?)&(\clvmgf?)&(\clvmrg?)(<celldgu>?)&(<celldgl>?)&(<cellalign>?)&(<celltop>?)&(<cellleft>?)&(<cellbot>?)&(<cellright>?)&(<cellshad>?)&(<cellflow>?)&(\clFitText?)&(\clNoWrap?)&(<cellwidth>?)(<cellrev>?)&(<cellins>?)&(<celldel>?)&(<cellpad>?)&(<cellsp>?))\cellxN-->
+    <any>
+      <optional>
+        <flag name="clmgf"/>
+      </optional>
+      <optional>
+        <flag name="clmrg"/>
+      </optional>
+      <optional>
+        <flag name="clvmgf"/>
+      </optional>
+      <optional>
+        <flag name="clvmrg"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <ref name="celldgu"/>
+      </optional>
+      <optional>
+        <ref name="celldgl"/>
+      </optional>
+      <optional>
+        <ref name="cellalign"/>
+      </optional>
+      <optional>
+        <ref name="celltop"/>
+      </optional>
+      <optional>
+        <ref name="cellleft"/>
+      </optional>
+      <optional>
+        <ref name="cellbot"/>
+      </optional>
+      <optional>
+        <ref name="cellright"/>
+      </optional>
+      <optional>
+        <ref name="cellshad"/>
+      </optional>
+      <optional>
+        <ref name="cellflow"/>
+      </optional>
+      <optional>
+        <flag name="clFitText"/>
+      </optional>
+      <optional>
+        <flag name="clNoWrap"/>
+      </optional>
+      <optional>
+        <ref name="cellwidth"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <ref name="cellrev"/>
+      </optional>
+      <optional>
+        <ref name="cellins"/>
+      </optional>
+      <optional>
+        <ref name="celldel"/>
+      </optional>
+      <optional>
+        <ref name="cellpad"/>
+      </optional>
+      <optional>
+        <ref name="cellsp"/>
+      </optional>
+    </any>
+    <value name="cellx"/>
+  </define>
+  <define name="celldgu">
+    <!--\cldglu <brdr>-->
+    <!--\cldglu <brdr>-->
+    <!--\cldglu<brdr>-->
+    <flag name="cldglu"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="celldgl">
+    <!--\cldgll <brdr>-->
+    <!--\cldgll <brdr>-->
+    <!--\cldgll<brdr>-->
+    <flag name="cldgll"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="cellalign">
+    <!--\clvertalt | \clvertalc | \clvertalb-->
+    <!--\clvertalt | \clvertalc | \clvertalb-->
+    <!--\clvertalt|\clvertalc|\clvertalb-->
+    <choice>
+      <flag name="clvertalt"/>
+      <flag name="clvertalc"/>
+      <flag name="clvertalb"/>
+    </choice>
+  </define>
+  <define name="celltop">
+    <!--\clbrdrt <brdr>-->
+    <!--\clbrdrt <brdr>-->
+    <!--\clbrdrt<brdr>-->
+    <flag name="clbrdrt"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="cellleft">
+    <!--\clbrdrl <brdr>-->
+    <!--\clbrdrl <brdr>-->
+    <!--\clbrdrl<brdr>-->
+    <flag name="clbrdrl"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="cellbot">
+    <!--\clbrdrb <brdr>-->
+    <!--\clbrdrb <brdr>-->
+    <!--\clbrdrb<brdr>-->
+    <flag name="clbrdrb"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="cellright">
+    <!--\clbrdrr <brdr>-->
+    <!--\clbrdrr <brdr>-->
+    <!--\clbrdrr<brdr>-->
+    <flag name="clbrdrr"/>
+    <ref name="brdr"/>
+  </define>
+  <define name="cellshad">
+    <!--<cellpat>? \clcfpatN? & \clcbpatN? & \clshdngN -->
+    <!--<cellpat>? \clcfpatN? & \clcbpatN? & \clshdngN -->
+    <!--(<cellpat>?)(\clcfpatN?)&(\clcbpatN?)&\clshdngN -->
+    <optional>
+      <ref name="cellpat"/>
+    </optional>
+    <any>
+      <optional>
+        <value name="clcfpat"/>
+      </optional>
+      <optional>
+        <value name="clcbpat"/>
+      </optional>
+      <value name="clshdng"/>
+    </any>
+    <notoken> </notoken>
+  </define>
+  <define name="cellpat">
+    <!--\clbghoriz | \clbgvert | \clbgfdiag | \clbgbdiag | \clbgcross | \clbgdcross | \clbgdkhor | \clbgdkvert | \clbgdkfdiag | \clbgdkbdiag | \clbgdkcross | \clbgdkdcross -->
+    <!--\clbghoriz | \clbgvert | \clbgfdiag | \clbgbdiag | \clbgcross | \clbgdcross | \clbgdkhor | \clbgdkvert | \clbgdkfdiag | \clbgdkbdiag | \clbgdkcross | \clbgdkdcross -->
+    <!--\clbghoriz|\clbgvert|\clbgfdiag|\clbgbdiag|\clbgcross|\clbgdcross|\clbgdkhor|\clbgdkvert|\clbgdkfdiag|\clbgdkbdiag|\clbgdkcross|\clbgdkdcross -->
+    <choice>
+      <flag name="clbghoriz"/>
+      <flag name="clbgvert"/>
+      <flag name="clbgfdiag"/>
+      <flag name="clbgbdiag"/>
+      <flag name="clbgcross"/>
+      <flag name="clbgdcross"/>
+      <flag name="clbgdkhor"/>
+      <flag name="clbgdkvert"/>
+      <flag name="clbgdkfdiag"/>
+      <flag name="clbgdkbdiag"/>
+      <flag name="clbgdkcross"/>
+      <flag name="clbgdkdcross"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="cellflow">
+    <!--\cltxlrtb | \cltxtbrl | \cltxbtlr | \cltxlrtbv | \cltxtbrlv-->
+    <!--\cltxlrtb | \cltxtbrl | \cltxbtlr | \cltxlrtbv | \cltxtbrlv-->
+    <!--\cltxlrtb|\cltxtbrl|\cltxbtlr|\cltxlrtbv|\cltxtbrlv-->
+    <choice>
+      <flag name="cltxlrtb"/>
+      <flag name="cltxtbrl"/>
+      <flag name="cltxbtlr"/>
+      <flag name="cltxlrtbv"/>
+      <flag name="cltxtbrlv"/>
+    </choice>
+  </define>
+  <define name="cellwidth">
+    <!--\clftsWidthN & \clwWidthN? & \clhidemark?-->
+    <!--\clftsWidthN & \clwWidthN? & \clhidemark?-->
+    <!--\clftsWidthN&(\clwWidthN?)&(\clhidemark?)-->
+    <any>
+      <value name="clftsWidth"/>
+      <optional>
+        <value name="clwWidth"/>
+      </optional>
+      <optional>
+        <control name="clhidemark"/>
+      </optional>
+    </any>
+  </define>
+  <define name="cellrev">
+    <!--\clmrgd | \clmrgdr | \ clsplit | \clsplitr & <cellrevauth>? & <cellrevdate>?-->
+    <!--\clmrgd | \clmrgdr | \ clsplit | \clsplitr & <cellrevauth>? & <cellrevdate>?-->
+    <!--\clmrgd|\clmrgdr|\clsplit | \clsplitr & <cellrevauth>? & <cellrevdate>?-->
+    <optional>
+      <any>
+        <optional>
+          <any>
+            <choice>
+              <choice>
+                <flag name="clmrgd"/>
+                <flag name="clmrgdr"/>
+                <flag name="clsplit"/>
+              </choice>
+              <flag name="clsplitr"/>
+            </choice>
+            <ref name="cellrevauth"/>
+          </any>
+        </optional>
+        <ref name="cellrevdate"/>
+      </any>
+    </optional>
+  </define>
+  <define name="cellrevauth">
+    <!--\clmrgdauthN-->
+    <!--\clmrgdauthN-->
+    <!--\clmrgdauthN-->
+    <value name="clmrgdauth"/>
+  </define>
+  <define name="cellrevdate">
+    <!--\clmrgddttmN-->
+    <!--\clmrgddttmN-->
+    <!--\clmrgddttmN-->
+    <value name="clmrgddttm"/>
+  </define>
+  <define name="cellins">
+    <!--\clins & <cellinsauth>? & <cellinsdttm>?-->
+    <!--\clins & <cellinsauth>? & <cellinsdttm>?-->
+    <!--\clins&(<cellinsauth>?)&(<cellinsdttm>?)-->
+    <any>
+      <flag name="clins"/>
+      <optional>
+        <ref name="cellinsauth"/>
+      </optional>
+      <optional>
+        <ref name="cellinsdttm"/>
+      </optional>
+    </any>
+  </define>
+  <define name="cellinsauth">
+    <!--\clinsauthN-->
+    <!--\clinsauthN-->
+    <!--\clinsauthN-->
+    <value name="clinsauth"/>
+  </define>
+  <define name="cellinsdttm">
+    <!--\clinsdttmN-->
+    <!--\clinsdttmN-->
+    <!--\clinsdttmN-->
+    <value name="clinsdttm"/>
+  </define>
+  <define name="celldel">
+    <!--\cldel & <celldelauth>? & <celldeldttm>?-->
+    <!--\cldel & <celldelauth>? & <celldeldttm>?-->
+    <!--\cldel&(<celldelauth>?)&(<celldeldttm>?)-->
+    <any>
+      <control name="cldel"/>
+      <optional>
+        <ref name="celldelauth"/>
+      </optional>
+      <optional>
+        <ref name="celldeldttm"/>
+      </optional>
+    </any>
+  </define>
+  <define name="celldelauth">
+    <!--\cldelauthN-->
+    <!--\cldelauthN-->
+    <!--\cldelauthN-->
+    <value name="cldelauth"/>
+  </define>
+  <define name="celldeldttm">
+    <!--\cldeldttmN-->
+    <!--\cldeldttmN-->
+    <!--\cldeldttmN-->
+    <value name="cldeldttm"/>
+  </define>
+  <define name="cellpad">
+    <!--(\clpadlN & \clpadflN?)? & (\clpadtN & \clpadftN?)? & (\clpadbN & \clpadfbN?)? & (\clpadrN & \clpadfrN?)?-->
+    <!--(\clpadlN & \clpadflN?)? & (\clpadtN & \clpadftN?)? & (\clpadbN & \clpadfbN?)? & (\clpadrN & \clpadfrN?)?-->
+    <!--((\clpadlN&(\clpadflN?))?)&((\clpadtN&(\clpadftN?))?)&((\clpadbN&(\clpadfbN?))?)&((\clpadrN&(\clpadfrN?))?)-->
+    <any>
+      <optional>
+        <any>
+          <value name="clpadl"/>
+          <optional>
+            <value name="clpadfl"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="clpadt"/>
+          <optional>
+            <value name="clpadft"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="clpadb"/>
+          <optional>
+            <value name="clpadfb"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="clpadr"/>
+          <optional>
+            <value name="clpadfr"/>
+          </optional>
+        </any>
+      </optional>
+    </any>
+  </define>
+  <define name="cellsp">
+    <!--(\clsplN & \clspflN?)? & (\clsptN & \clspftN?)? & (\clspbN & \clspfbN?)? & (\clsprN & \clspfrN?)?-->
+    <!--(\clsplN & \clspflN?)? & (\clsptN & \clspftN?)? & (\clspbN & \clspfbN?)? & (\clsprN & \clspfrN?)?-->
+    <!--((\clsplN&(\clspflN?))?)&((\clsptN&(\clspftN?))?)&((\clspbN&(\clspfbN?))?)&((\clsprN&(\clspfrN?))?)-->
+    <any>
+      <optional>
+        <any>
+          <value name="clspl"/>
+          <optional>
+            <value name="clspfl"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="clspt"/>
+          <optional>
+            <value name="clspft"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="clspb"/>
+          <optional>
+            <value name="clspfb"/>
+          </optional>
+        </any>
+      </optional>
+      <optional>
+        <any>
+          <value name="clspr"/>
+          <optional>
+            <value name="clspfr"/>
+          </optional>
+        </any>
+      </optional>
+    </any>
+  </define>
+  <define name="mathprops">
+    <!--'{\*' \mmathPr <mathPr>* '}' -->
+    <!--'{' \*\mmathPr <mathPr>* '}' -->
+    <!--'{'\*\mmathPr(<mathPr>*)'}' -->
+    <literal>{</literal>
+    <destination name="mmathPr"/>
+    <zero-or-more>
+      <ref name="mathPr"/>
+    </zero-or-more>
+    <literal>}</literal>
+    <notoken> </notoken>
+  </define>
+  <define name="mathPr">
+    <!--\mbrkBinN | \mbrkBinSubN | \mdefJcN | \mdispDefN | \minterSpN | \mintLimN | \mintraSpN | \mlMarginN | \mmathFontN | \mnaryLimN | \mpostSpN | \mpreSpN | \mrMarginN | \msmallFracN | \mwrapIndentN | \mwrapRightN-->
+    <!--\mbrkBinN | \mbrkBinSubN | \mdefJcN | \mdispDefN | \minterSpN | \mintLimN | \mintraSpN | \mlMarginN | \mmathFontN | \mnaryLimN | \mpostSpN | \mpreSpN | \mrMarginN | \msmallFracN | \mwrapIndentN | \mwrapRightN-->
+    <!--\mbrkBinN|\mbrkBinSubN|\mdefJcN|\mdispDefN|\minterSpN|\mintLimN|\mintraSpN|\mlMarginN|\mmathFontN|\mnaryLimN|\mpostSpN|\mpreSpN|\mrMarginN|\msmallFracN|\mwrapIndentN|\mwrapRightN-->
+    <choice>
+      <control name="mbrkBin"/>
+      <control name="mbrkBinSub"/>
+      <control name="mdefJc"/>
+      <control name="mdispDef"/>
+      <control name="minterSp"/>
+      <control name="mintLim"/>
+      <control name="mintraSp"/>
+      <control name="mlMargin"/>
+      <control name="mmathFont"/>
+      <control name="mnaryLim"/>
+      <control name="mpostSp"/>
+      <control name="mpreSp"/>
+      <control name="mrMargin"/>
+      <control name="msmallFrac"/>
+      <control name="mwrapIndent"/>
+      <control name="mwrapRight"/>
+    </choice>
+  </define>
+  <define name="mathzone">
+    <!--'{' \mmath (<mathpara> | <mathinline>) <mathpict>? '}'-->
+    <!--'{' \mmath (<mathpara> | <mathinline>) <mathpict>? '}'-->
+    <!--'{'\mmath(<mathpara>|<mathinline>)(<mathpict>?)'}'-->
+    <literal>{</literal>
+    <control name="mmath"/>
+    <choice>
+      <ref name="mathpara"/>
+      <ref name="mathinline"/>
+    </choice>
+    <optional>
+      <ref name="mathpict"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="mathpara">
+    <!--'{\*' \moMathPara <mathparaprops>? <oMath>+ '}'-->
+    <!--'{' \*\moMathPara <mathparaprops>? <oMath>+ '}'-->
+    <!--'{'\*\moMathPara(<mathparaprops>?)(<oMath>+)'}'-->
+    <literal>{</literal>
+    <destination name="moMathPara"/>
+    <optional>
+      <ref name="mathparaprops"/>
+    </optional>
+    <one-or-more>
+      <ref name="oMath"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="mathparaprops">
+    <!--'{' \moMathParaPr \mjcN? '}'-->
+    <!--'{' \moMathParaPr \mjcN? '}'-->
+    <!--'{'\moMathParaPr(\mjcN?)'}'-->
+    <literal>{</literal>
+    <control name="moMathParaPr"/>
+    <optional>
+      <control name="mjc"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="mathinline">
+    <!--<oMath>-->
+    <!--<oMath>-->
+    <!--<oMath>-->
+    <ref name="oMath"/>
+  </define>
+  <define name="oMath">
+    <!--'{\*' \moMath \fN (<mathobject> | <r>)* '}'-->
+    <!--'{' \*\moMath \fN (<mathobject> | <r>)* '}'-->
+    <!--'{'\*\moMath\fN((<mathobject>|<r>)*)'}'-->
+    <literal>{</literal>
+    <destination name="moMath"/>
+    <value name="f"/>
+    <zero-or-more>
+      <choice>
+        <ref name="mathobject"/>
+        <ref name="r"/>
+      </choice>
+    </zero-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="mathobject">
+    <!--<acc> | <bar> | <borderBox> | <box> | <d> | <eqArr> | <f> | <func> | <groupChr> | <limLow> | <limUpp> | <m> | <nary> | <phant> | <rad> | <sPre> | <sSub> | <sSubSup> | <sSup>-->
+    <!--<acc> | <bar> | <borderBox> | <box> | <d> | <eqArr> | <f> | <func> | <groupChr> | <limLow> | <limUpp> | <m> | <nary> | <phant> | <rad> | <sPre> | <sSub> | <sSubSup> | <sSup>-->
+    <!--<acc>|<bar>|<borderBox>|<box>|<d>|<eqArr>|<f>|<func>|<groupChr>|<limLow>|<limUpp>|<m>|<nary>|<phant>|<rad>|<sPre>|<sSub>|<sSubSup>|<sSup>-->
+    <choice>
+      <ref name="acc"/>
+      <ref name="bar"/>
+      <ref name="borderBox"/>
+      <ref name="box"/>
+      <ref name="d"/>
+      <ref name="eqArr"/>
+      <ref name="f"/>
+      <ref name="func"/>
+      <ref name="groupChr"/>
+      <ref name="limLow"/>
+      <ref name="limUpp"/>
+      <ref name="m"/>
+      <ref name="nary"/>
+      <ref name="phant"/>
+      <ref name="rad"/>
+      <ref name="sPre"/>
+      <ref name="sSub"/>
+      <ref name="sSubSup"/>
+      <ref name="sSup"/>
+    </choice>
+  </define>
+  <define name="acc">
+    <!--'{' \macc <accPr><e> '}'-->
+    <!--'{' \macc <accPr><e> '}'-->
+    <!--'{'\macc<accPr><e>'}'-->
+    <literal>{</literal>
+    <control name="macc"/>
+    <ref name="accPr"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="bar">
+    <!--'{' \mbar <barPr><e> '}'-->
+    <!--'{' \mbar <barPr><e> '}'-->
+    <!--'{'\mbar<barPr><e>'}'-->
+    <literal>{</literal>
+    <control name="mbar"/>
+    <ref name="barPr"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="borderBox">
+    <!--'{' \mborderBox <borderBoxPr><e> '}'-->
+    <!--'{' \mborderBox <borderBoxPr><e> '}'-->
+    <!--'{'\mborderBox<borderBoxPr><e>'}'-->
+    <literal>{</literal>
+    <control name="mborderBox"/>
+    <ref name="borderBoxPr"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="box">
+    <!--'{' \mbox <boxPr><e> '}'-->
+    <!--'{' \mbox <boxPr><e> '}'-->
+    <!--'{'\mbox<boxPr><e>'}'-->
+    <literal>{</literal>
+    <control name="mbox"/>
+    <ref name="boxPr"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="d">
+    <!--'{' \md <dPr><e>+ '}'-->
+    <!--'{' \md <dPr><e>+ '}'-->
+    <!--'{'\md<dPr>(<e>+)'}'-->
+    <literal>{</literal>
+    <control name="md"/>
+    <ref name="dPr"/>
+    <one-or-more>
+      <ref name="e"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="eqArr">
+    <!--'{' \meqArr <eqArrPr><e>+ '}'-->
+    <!--'{' \meqArr <eqArrPr><e>+ '}'-->
+    <!--'{'\meqArr<eqArrPr>(<e>+)'}'-->
+    <literal>{</literal>
+    <control name="meqArr"/>
+    <ref name="eqArrPr"/>
+    <one-or-more>
+      <ref name="e"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="f">
+    <!--'{' \mf <mfPr><num><den> '}'-->
+    <!--'{' \mf <mfPr><num><den> '}'-->
+    <!--'{'\mf<mfPr><num><den>'}'-->
+    <literal>{</literal>
+    <control name="mf"/>
+    <ref name="mfPr"/>
+    <ref name="num"/>
+    <ref name="den"/>
+    <literal>}</literal>
+  </define>
+  <define name="func">
+    <!--'{' \mfunc <mfuncPr><fname><e> '}'-->
+    <!--'{' \mfunc <mfuncPr><fname><e> '}'-->
+    <!--'{'\mfunc<mfuncPr><fname><e>'}'-->
+    <literal>{</literal>
+    <control name="mfunc"/>
+    <ref name="mfuncPr"/>
+    <ref name="fname"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="groupChr">
+    <!--'{' \mgroupChr <groupChrPr><e> '}'-->
+    <!--'{' \mgroupChr <groupChrPr><e> '}'-->
+    <!--'{'\mgroupChr<groupChrPr><e>'}'-->
+    <literal>{</literal>
+    <control name="mgroupChr"/>
+    <ref name="groupChrPr"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="limLow">
+    <!--'{' \mlimlow <limLowPr><lim><e> '}'-->
+    <!--'{' \mlimlow <limLowPr><lim><e> '}'-->
+    <!--'{'\mlimlow<limLowPr><lim><e>'}'-->
+    <literal>{</literal>
+    <control name="mlimlow"/>
+    <ref name="limLowPr"/>
+    <ref name="lim"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="limUpp">
+    <!--'{' \mlimUpp <limUppPr><lim><e> '}'-->
+    <!--'{' \mlimUpp <limUppPr><lim><e> '}'-->
+    <!--'{'\mlimUpp<limUppPr><lim><e>'}'-->
+    <literal>{</literal>
+    <control name="mlimUpp"/>
+    <ref name="limUppPr"/>
+    <ref name="lim"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="m">
+    <!--'{' \mm <mPr><mr>+ '}'-->
+    <!--'{' \mm <mPr><mr>+ '}'-->
+    <!--'{'\mm<mPr>(<mr>+)'}'-->
+    <literal>{</literal>
+    <control name="mm"/>
+    <ref name="mPr"/>
+    <one-or-more>
+      <ref name="mr"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="nary">
+    <!--'{' \mnary <naryPr><sub><sup><e> '}'-->
+    <!--'{' \mnary <naryPr><sub><sup><e> '}'-->
+    <!--'{'\mnary<naryPr><sub><sup><e>'}'-->
+    <literal>{</literal>
+    <control name="mnary"/>
+    <ref name="naryPr"/>
+    <ref name="sub"/>
+    <ref name="sup"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="phant">
+    <!--'{' \mphant <phantPr><e> '}'-->
+    <!--'{' \mphant <phantPr><e> '}'-->
+    <!--'{'\mphant<phantPr><e>'}'-->
+    <literal>{</literal>
+    <control name="mphant"/>
+    <ref name="phantPr"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="rad">
+    <!--'{' \mrad <radPr><e> '}'-->
+    <!--'{' \mrad <radPr><e> '}'-->
+    <!--'{'\mrad<radPr><e>'}'-->
+    <literal>{</literal>
+    <control name="mrad"/>
+    <ref name="radPr"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="sPre">
+    <!--'{' \msPre <sPrePr><sub><sup><e> '}'-->
+    <!--'{' \msPre <sPrePr><sub><sup><e> '}'-->
+    <!--'{'\msPre<sPrePr><sub><sup><e>'}'-->
+    <literal>{</literal>
+    <control name="msPre"/>
+    <ref name="sPrePr"/>
+    <ref name="sub"/>
+    <ref name="sup"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="sSub">
+    <!--'{' \msSub <sSubPr><sub><e> '}'-->
+    <!--'{' \msSub <sSubPr><sub><e> '}'-->
+    <!--'{'\msSub<sSubPr><sub><e>'}'-->
+    <literal>{</literal>
+    <control name="msSub"/>
+    <ref name="sSubPr"/>
+    <ref name="sub"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="sSubSup">
+    <!--'{' \msSubSup <sSubSupPr><sub><sup><e> '}'-->
+    <!--'{' \msSubSup <sSubSupPr><sub><sup><e> '}'-->
+    <!--'{'\msSubSup<sSubSupPr><sub><sup><e>'}'-->
+    <literal>{</literal>
+    <control name="msSubSup"/>
+    <ref name="sSubSupPr"/>
+    <ref name="sub"/>
+    <ref name="sup"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="sSup">
+    <!--'{' \msSup <sSupPr><sup><e> '}'-->
+    <!--'{' \msSup <sSupPr><sup><e> '}'-->
+    <!--'{'\msSup<sSupPr><sup><e>'}'-->
+    <literal>{</literal>
+    <control name="msSup"/>
+    <ref name="sSupPr"/>
+    <ref name="sup"/>
+    <ref name="e"/>
+    <literal>}</literal>
+  </define>
+  <define name="accPr">
+    <!--'{' \maccPr <chr>?<ctrlPr> '}'-->
+    <!--'{' \maccPr <chr>?<ctrlPr> '}'-->
+    <!--'{'\maccPr(<chr>?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="maccPr"/>
+    <optional>
+      <ref name="chr"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="barPr">
+    <!--'{' \mbarPr <pos>?<ctrlPr> '}'-->
+    <!--'{' \mbarPr <pos>?<ctrlPr> '}'-->
+    <!--'{'\mbarPr(<pos>?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mbarPr"/>
+    <optional>
+      <ref name="pos"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="borderBoxPr">
+    <!--'{' \mborderBoxPr <borderBoxPrp>* <ctrlPr> '}'-->
+    <!--'{' \mborderBoxPr <borderBoxPrp>* <ctrlPr> '}'-->
+    <!--'{'\mborderBoxPr(<borderBoxPrp>*)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mborderBoxPr"/>
+    <zero-or-more>
+      <ref name="borderBoxPrp"/>
+    </zero-or-more>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="boxPr">
+    <!--'{' \mboxPr <boxPrp>* \mbrk?<ctrlPr> '}'-->
+    <!--'{' \mboxPr <boxPrp>* \mbrk?<ctrlPr> '}'-->
+    <!--'{'\mboxPr(<boxPrp>*)(\mbrk?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mboxPr"/>
+    <zero-or-more>
+      <ref name="boxPrp"/>
+    </zero-or-more>
+    <optional>
+      <control name="mbrk"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="dPr">
+    <!--'{' \mdPr <begChr>? <endChr>? <sepChr>? <grow>? <shp>? <ctrlPr> '}'-->
+    <!--'{' \mdPr <begChr>? <endChr>? <sepChr>? <grow>? <shp>? <ctrlPr> '}'-->
+    <!--'{'\mdPr(<begChr>?)(<endChr>?)(<sepChr>?)(<grow>?)(<shp>?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mdPr"/>
+    <optional>
+      <ref name="begChr"/>
+    </optional>
+    <optional>
+      <ref name="endChr"/>
+    </optional>
+    <optional>
+      <ref name="sepChr"/>
+    </optional>
+    <optional>
+      <ref name="grow"/>
+    </optional>
+    <optional>
+      <ref name="shp"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="eqArrPr">
+    <!--'{' \meqArrPr <baseJc>? <maxdist>? <objdist>? \mrSpN? \mrSpRuleN? <ctrlPr> '}'-->
+    <!--'{' \meqArrPr <baseJc>? <maxdist>? <objdist>? \mrSpN? \mrSpRuleN? <ctrlPr> '}'-->
+    <!--'{'\meqArrPr(<baseJc>?)(<maxdist>?)(<objdist>?)(\mrSpN?)(\mrSpRuleN?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="meqArrPr"/>
+    <optional>
+      <ref name="baseJc"/>
+    </optional>
+    <optional>
+      <ref name="maxdist"/>
+    </optional>
+    <optional>
+      <ref name="objdist"/>
+    </optional>
+    <optional>
+      <control name="mrSp"/>
+    </optional>
+    <optional>
+      <control name="mrSpRule"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="fPr">
+    <!--'{' \mfPr <type>?<ctrlPr> '}'-->
+    <!--'{' \mfPr <type>?<ctrlPr> '}'-->
+    <!--'{'\mfPr(<type>?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mfPr"/>
+    <optional>
+      <ref name="type"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="funcPr">
+    <!--'{' \mfuncPr <ctrlPr> '}'-->
+    <!--'{' \mfuncPr <ctrlPr> '}'-->
+    <!--'{'\mfuncPr<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mfuncPr"/>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="groupChrPr">
+    <!--'{' \mgroupChrPr <chr>? <pos>? <vertJc>? <ctrlPr> '}'-->
+    <!--'{' \mgroupChrPr <chr>? <pos>? <vertJc>? <ctrlPr> '}'-->
+    <!--'{'\mgroupChrPr(<chr>?)(<pos>?)(<vertJc>?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mgroupChrPr"/>
+    <optional>
+      <ref name="chr"/>
+    </optional>
+    <optional>
+      <ref name="pos"/>
+    </optional>
+    <optional>
+      <ref name="vertJc"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="limLowPr">
+    <!--'{' \mlimLowPr <ctrlPr> '}'-->
+    <!--'{' \mlimLowPr <ctrlPr> '}'-->
+    <!--'{'\mlimLowPr<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mlimLowPr"/>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="limUppPr">
+    <!--'{' \mlimUppPr <ctrlPr> '}'-->
+    <!--'{' \mlimUppPr <ctrlPr> '}'-->
+    <!--'{'\mlimUppPr<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mlimUppPr"/>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="mPr">
+    <!--'{' \mmPr <baseJc>? \mcGpN? \mcGpRuleN? \mcSpN? <mcs> <plcHide>? \mrSpN? \mrSpRuleN? <ctrlPr> '}'-->
+    <!--'{' \mmPr <baseJc>? \mcGpN? \mcGpRuleN? \mcSpN? <mcs> <plcHide>? \mrSpN? \mrSpRuleN? <ctrlPr> '}'-->
+    <!--'{'\mmPr(<baseJc>?)(\mcGpN?)(\mcGpRuleN?)(\mcSpN?)<mcs>(<plcHide>?)(\mrSpN?)(\mrSpRuleN?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mmPr"/>
+    <optional>
+      <ref name="baseJc"/>
+    </optional>
+    <optional>
+      <control name="mcGp"/>
+    </optional>
+    <optional>
+      <control name="mcGpRule"/>
+    </optional>
+    <optional>
+      <control name="mcSp"/>
+    </optional>
+    <ref name="mcs"/>
+    <optional>
+      <ref name="plcHide"/>
+    </optional>
+    <optional>
+      <control name="mrSp"/>
+    </optional>
+    <optional>
+      <control name="mrSpRule"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="naryPr">
+    <!--'{' \mnaryPr <chr>? <grow>? <limloc>? <subhide>? <suphide>? <ctrlPr> '}'-->
+    <!--'{' \mnaryPr <chr>? <grow>? <limloc>? <subhide>? <suphide>? <ctrlPr> '}'-->
+    <!--'{'\mnaryPr(<chr>?)(<grow>?)(<limloc>?)(<subhide>?)(<suphide>?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mnaryPr"/>
+    <optional>
+      <ref name="chr"/>
+    </optional>
+    <optional>
+      <ref name="grow"/>
+    </optional>
+    <optional>
+      <ref name="limloc"/>
+    </optional>
+    <optional>
+      <ref name="subhide"/>
+    </optional>
+    <optional>
+      <ref name="suphide"/>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="phantPr">
+    <!--'{' \mphantPr <phantprp>* <ctrlPr> '}'-->
+    <!--'{' \mphantPr <phantprp>* <ctrlPr> '}'-->
+    <!--'{'\mphantPr(<phantprp>*)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mphantPr"/>
+    <zero-or-more>
+      <ref name="phantprp"/>
+    </zero-or-more>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="radPr">
+    <!--'{' \mradPr ('{' \mdegHide <onoff> '}')? <ctrlPr> '}'-->
+    <!--'{' \mradPr ('{' \mdegHide <onoff> '}')? <ctrlPr> '}'-->
+    <!--'{'\mradPr(('{'\mdegHide<onoff>'}')?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="mradPr"/>
+    <optional>
+      <literal>{</literal>
+      <control name="mdegHide"/>
+      <ref name="onoff"/>
+      <literal>}</literal>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="sPrePr">
+    <!--'{' \msPrePr <ctrlPr> '}'-->
+    <!--'{' \msPrePr <ctrlPr> '}'-->
+    <!--'{'\msPrePr<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="msPrePr"/>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="sSubPr">
+    <!--'{' \msSubPr <ctrlPr> '}'-->
+    <!--'{' \msSubPr <ctrlPr> '}'-->
+    <!--'{'\msSubPr<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="msSubPr"/>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="sSubSupPr">
+    <!--'{' \msSubSupPr ('{' \malnScr <onoff> '}')? <ctrlPr> '}'-->
+    <!--'{' \msSubSupPr ('{' \malnScr <onoff> '}')? <ctrlPr> '}'-->
+    <!--'{'\msSubSupPr(('{'\malnScr<onoff>'}')?)<ctrlPr>'}'-->
+    <literal>{</literal>
+    <control name="msSubSupPr"/>
+    <optional>
+      <literal>{</literal>
+      <control name="malnScr"/>
+      <ref name="onoff"/>
+      <literal>}</literal>
+    </optional>
+    <ref name="ctrlPr"/>
+    <literal>}</literal>
+  </define>
+  <define name="sSupPr">
+    <!--'{' \msSupPr <ctrlP> '}'-->
+    <!--'{' \msSupPr <ctrlP> '}'-->
+    <!--'{'\msSupPr<ctrlP>'}'-->
+    <literal>{</literal>
+    <control name="msSupPr"/>
+    <ref name="ctrlP"/>
+    <literal>}</literal>
+  </define>
+  <define name="ctrlPr">
+    <!--'{' \mctrlPr <chrfmt>* '}'-->
+    <!--'{' \mctrlPr <chrfmt>* '}'-->
+    <!--'{'\mctrlPr(<chrfmt>*)'}'-->
+    <literal>{</literal>
+    <control name="mctrlPr"/>
+    <zero-or-more>
+      <ref name="chrfmt"/>
+    </zero-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="deg">
+    <!--'{' \mdeg <argPr>? <math> '}'-->
+    <!--'{' \mdeg <argPr>? <math> '}'-->
+    <!--'{'\mdeg(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="mdeg"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="den">
+    <!--'{' \mden <argPr>? <math> '}'-->
+    <!--'{' \mden <argPr>? <math> '}'-->
+    <!--'{'\mden(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="mden"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="e">
+    <!--'{' \me <argPr>? <math> '}'-->
+    <!--'{' \me <argPr>? <math> '}'-->
+    <!--'{'\me(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="me"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="lim">
+    <!--'{' \mlim <argPr>? <math> '}'-->
+    <!--'{' \mlim <argPr>? <math> '}'-->
+    <!--'{'\mlim(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="mlim"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="fname">
+    <!--'{' \mfName <argPr>? <math> '}'-->
+    <!--'{' \mfName <argPr>? <math> '}'-->
+    <!--'{'\mfName(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="mfName"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="mr">
+    <!--'{' \mr <e>+ '}'-->
+    <!--'{' \mr <e>+ '}'-->
+    <!--'{'\mr(<e>+)'}'-->
+    <literal>{</literal>
+    <control name="mr"/>
+    <one-or-more>
+      <ref name="e"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="num">
+    <!--'{' \mnum <argPr>? <math> '}'-->
+    <!--'{' \mnum <argPr>? <math> '}'-->
+    <!--'{'\mnum(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="mnum"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="sub">
+    <!--'{' \msub <argPr>? <math> '}'-->
+    <!--'{' \msub <argPr>? <math> '}'-->
+    <!--'{'\msub(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="msub"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="sup">
+    <!--'{' \msup <argPr>? <math> '}'-->
+    <!--'{' \msup <argPr>? <math> '}'-->
+    <!--'{'\msup(<argPr>?)<math>'}'-->
+    <literal>{</literal>
+    <control name="msup"/>
+    <optional>
+      <ref name="argPr"/>
+    </optional>
+    <ref name="math"/>
+    <literal>}</literal>
+  </define>
+  <define name="argPr">
+    <!--'{' \margPr \margSz? '}'-->
+    <!--'{' \margPr \margSz? '}'-->
+    <!--'{'\margPr(\margSz?)'}'-->
+    <literal>{</literal>
+    <control name="margPr"/>
+    <optional>
+      <control name="margSz"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="baseJc">
+    <!--'{' \mbaseJc ('bot' | 'top') '}'-->
+    <!--'{' \mbaseJc ('bot' | 'top') '}'-->
+    <!--'{'\mbaseJc('bot'|'top')'}'-->
+    <literal>{</literal>
+    <control name="mbaseJc"/>
+    <choice>
+      <literal>bot</literal>
+      <literal>top</literal>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="borderBoxPrp">
+    <!--'{' (\mhideBot | \mhideLeft | \mhideRight | \mhideTop | \mstrikeBLTR | \mstrikeH | \mstrikeTLBR | \mstrikeV) <onoff> '}'-->
+    <!--'{' (\mhideBot | \mhideLeft | \mhideRight | \mhideTop | \mstrikeBLTR | \mstrikeH | \mstrikeTLBR | \mstrikeV) <onoff> '}'-->
+    <!--'{'(\mhideBot|\mhideLeft|\mhideRight|\mhideTop|\mstrikeBLTR|\mstrikeH|\mstrikeTLBR|\mstrikeV)<onoff>'}'-->
+    <literal>{</literal>
+    <choice>
+      <control name="mhideBot"/>
+      <control name="mhideLeft"/>
+      <control name="mhideRight"/>
+      <control name="mhideTop"/>
+      <control name="mstrikeBLTR"/>
+      <control name="mstrikeH"/>
+      <control name="mstrikeTLBR"/>
+      <control name="mstrikeV"/>
+    </choice>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="boxPrp">
+    <!--'{' (\maln | \mdiff | \mnoBreak | \mopEmu) <onoff> '}'-->
+    <!--'{' (\maln | \mdiff | \mnoBreak | \mopEmu) <onoff> '}'-->
+    <!--'{'(\maln|\mdiff|\mnoBreak|\mopEmu)<onoff>'}'-->
+    <literal>{</literal>
+    <choice>
+      <control name="maln"/>
+      <control name="mdiff"/>
+      <control name="mnoBreak"/>
+      <control name="mopEmu"/>
+    </choice>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="chr">
+    <!--'{' \mchr <single char> '}'-->
+    <!--'{' \mchr <single char> '}'-->
+    <!--'{'\mchr<single char>'}'-->
+    <literal>{</literal>
+    <control name="mchr"/>
+    <ref name="single char"/>
+    <literal>}</literal>
+  </define>
+  <define name="count">
+    <!--'{' \mcount <digits> '}'-->
+    <!--'{' \mcount <digits> '}'-->
+    <!--'{'\mcount<digits>'}'-->
+    <literal>{</literal>
+    <control name="mcount"/>
+    <ref name="digits"/>
+    <literal>}</literal>
+  </define>
+  <define name="begChr">
+    <!--'{' \mbegChr <single char> '}'-->
+    <!--'{' \mbegChr <single char> '}'-->
+    <!--'{'\mbegChr<single char>'}'-->
+    <literal>{</literal>
+    <control name="mbegChr"/>
+    <ref name="single char"/>
+    <literal>}</literal>
+  </define>
+  <define name="endChr">
+    <!--'{' \mendChr <single char> '}'-->
+    <!--'{' \mendChr <single char> '}'-->
+    <!--'{'\mendChr<single char>'}'-->
+    <literal>{</literal>
+    <control name="mendChr"/>
+    <ref name="single char"/>
+    <literal>}</literal>
+  </define>
+  <define name="grow">
+    <!--'{' \mgrow <onoff> '}'-->
+    <!--'{' \mgrow <onoff> '}'-->
+    <!--'{'\mgrow<onoff>'}'-->
+    <literal>{</literal>
+    <control name="mgrow"/>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="limLoc">
+    <!--'{' \mlimLoc ('undovr' | 'subsup') '}'-->
+    <!--'{' \mlimLoc ('undovr' | 'subsup') '}'-->
+    <!--'{'\mlimLoc('undovr'|'subsup')'}'-->
+    <literal>{</literal>
+    <control name="mlimLoc"/>
+    <choice>
+      <literal>undovr</literal>
+      <literal>subsup</literal>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="lit">
+    <!--'{' \mlit <onoff> '}'-->
+    <!--'{' \mlit <onoff> '}'-->
+    <!--'{'\mlit<onoff>'}'-->
+    <literal>{</literal>
+    <control name="mlit"/>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="math">
+    <!--(<mathobject> | <r> | <char> | <u>)*-->
+    <!--(<mathobject> | <r> | <char> | <u>)*-->
+    <!--((<mathobject>|<r>|<char>|<u>)*)-->
+    <zero-or-more>
+      <choice>
+        <ref name="mathobject"/>
+        <ref name="r"/>
+        <ref name="char"/>
+        <ref name="u"/>
+      </choice>
+    </zero-or-more>
+  </define>
+  <define name="mathPict">
+    <!--'{' \mmathPict '{\*' \shppict <pict> '}{' \nonshppict <pict> '}}'-->
+    <!--'{' \mmathPict '{\*' \shppict <pict> '}{' \nonshppict <pict> '}}'-->
+    <!--'{'\mmathPict'{\*'\shppict<pict>'}{'\nonshppict<pict>'}}'-->
+    <literal>{</literal>
+    <control name="mmathPict"/>
+    <literal>{\*</literal>
+    <destination name="shppict"/>
+    <ref name="pict"/>
+    <literal>}{</literal>
+    <flag name="nonshppict"/>
+    <ref name="pict"/>
+    <literal>}}</literal>
+  </define>
+  <define name="mc">
+    <!--'{' \mmc <mcpr> '}'-->
+    <!--'{' \mmc <mcpr> '}'-->
+    <!--'{'\mmc<mcpr>'}'-->
+    <literal>{</literal>
+    <control name="mmc"/>
+    <ref name="mcpr"/>
+    <literal>}</literal>
+  </define>
+  <define name="mcPr">
+    <!--'{' \mmcPr <count>? <mjc>? '}'-->
+    <!--'{' \mmcPr <count>? <mjc>? '}'-->
+    <!--'{'\mmcPr(<count>?)(<mjc>?)'}'-->
+    <literal>{</literal>
+    <control name="mmcPr"/>
+    <optional>
+      <ref name="count"/>
+    </optional>
+    <optional>
+      <ref name="mjc"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="mcs">
+    <!--'{' \mmcs <mc>+ '}'-->
+    <!--'{' \mmcs <mc>+ '}'-->
+    <!--'{'\mmcs(<mc>+)'}'-->
+    <literal>{</literal>
+    <control name="mmcs"/>
+    <one-or-more>
+      <ref name="mc"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="mjc">
+    <!--'{' \mmjc ('left' | 'center' | 'right') '}'-->
+    <!--'{' \mmjc ('left' | 'center' | 'right') '}'-->
+    <!--'{'\mmjc('left'|'center'|'right')'}'-->
+    <literal>{</literal>
+    <control name="mmjc"/>
+    <choice>
+      <literal>left</literal>
+      <literal>center</literal>
+      <literal>right</literal>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="r">
+    <!--'{' \mr (\mnor | \mscrN \mstyN)? \mlit? <char>* <u>* '}'-->
+    <!--'{' \mr (\mnor | \mscrN \mstyN)? \mlit? <char>* <u>* '}'-->
+    <!--'{'\mr((\mnor|\mscrN\mstyN)?)(\mlit?)(<char>*)(<u>*)'}'-->
+    <literal>{</literal>
+    <control name="mr"/>
+    <optional>
+      <choice>
+        <control name="mnor"/>
+        <control name="mscr"/>
+      </choice>
+      <control name="msty"/>
+    </optional>
+    <optional>
+      <control name="mlit"/>
+    </optional>
+    <zero-or-more>
+      <ref name="char"/>
+    </zero-or-more>
+    <zero-or-more>
+      <ref name="u"/>
+    </zero-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="maxDist">
+    <!--'{' \mmaxDist <onoff> '}'-->
+    <!--'{' \mmaxDist <onoff> '}'-->
+    <!--'{'\mmaxDist<onoff>'}'-->
+    <literal>{</literal>
+    <control name="mmaxDist"/>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="objDist">
+    <!--'{' \mobjDist <onoff> '}'-->
+    <!--'{' \mobjDist <onoff> '}'-->
+    <!--'{'\mobjDist<onoff>'}'-->
+    <literal>{</literal>
+    <control name="mobjDist"/>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="onoff">
+    <!--'on' | 'off'-->
+    <!--'on' | 'off'-->
+    <!--'on'|'off'-->
+    <choice>
+      <literal>on</literal>
+      <literal>off</literal>
+    </choice>
+  </define>
+  <define name="phantPrp">
+    <!--'{' (\mshow | \mtransp | \mzeroAsc | \mzeroDesc | \mzeroWid) <onoff> '}'-->
+    <!--'{' (\mshow | \mtransp | \mzeroAsc | \mzeroDesc | \mzeroWid) <onoff> '}'-->
+    <!--'{'(\mshow|\mtransp|\mzeroAsc|\mzeroDesc|\mzeroWid)<onoff>'}'-->
+    <literal>{</literal>
+    <choice>
+      <control name="mshow"/>
+      <control name="mtransp"/>
+      <control name="mzeroAsc"/>
+      <control name="mzeroDesc"/>
+      <control name="mzeroWid"/>
+    </choice>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="plcHide">
+    <!--'{' \mplcHide <onoff> '}'-->
+    <!--'{' \mplcHide <onoff> '}'-->
+    <!--'{'\mplcHide<onoff>'}'-->
+    <literal>{</literal>
+    <control name="mplcHide"/>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="pos">
+    <!--'{' \mpos ('top' | 'bot') '}'-->
+    <!--'{' \mpos ('top' | 'bot') '}'-->
+    <!--'{'\mpos('top'|'bot')'}'-->
+    <literal>{</literal>
+    <control name="mpos"/>
+    <choice>
+      <literal>top</literal>
+      <literal>bot</literal>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="sepChr">
+    <!--'{' \msepChr <single char> '}'-->
+    <!--'{' \msepChr <single char> '}'-->
+    <!--'{'\msepChr<single char>'}'-->
+    <literal>{</literal>
+    <control name="msepChr"/>
+    <ref name="single char"/>
+    <literal>}</literal>
+  </define>
+  <define name="single char">
+    <!--single character or <u>-->
+    <!--single character or <u>-->
+    <!--single character or <u>-->
+    <token>single character or &lt;u&gt;</token>
+  </define>
+  <define name="shp">
+    <!--'{' \mshp ('match' | 'centered') '}'-->
+    <!--'{' \mshp ('match' | 'centered') '}'-->
+    <!--'{'\mshp('match'|'centered')'}'-->
+    <literal>{</literal>
+    <control name="mshp"/>
+    <choice>
+      <literal>match</literal>
+      <literal>centered</literal>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="subHide">
+    <!--'{' \msubHide <onoff> '}'-->
+    <!--'{' \msubHide <onoff> '}'-->
+    <!--'{'\msubHide<onoff>'}'-->
+    <literal>{</literal>
+    <control name="msubHide"/>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="supHide">
+    <!--'{' \msupHide <onoff> '}'-->
+    <!--'{' \msupHide <onoff> '}'-->
+    <!--'{'\msupHide<onoff>'}'-->
+    <literal>{</literal>
+    <control name="msupHide"/>
+    <ref name="onoff"/>
+    <literal>}</literal>
+  </define>
+  <define name="type">
+    <!--'{' \mtype ('bar' | 'lin' | 'nobar' | 'skw') '}'-->
+    <!--'{' \mtype ('bar' | 'lin' | 'nobar' | 'skw') '}'-->
+    <!--'{'\mtype('bar'|'lin'|'nobar'|'skw')'}'-->
+    <literal>{</literal>
+    <control name="mtype"/>
+    <choice>
+      <literal>bar</literal>
+      <literal>lin</literal>
+      <literal>nobar</literal>
+      <literal>skw</literal>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="u">
+    <!--\uN '?'-->
+    <!--\uN '?'-->
+    <!--\uN'?'-->
+    <value name="u"/>
+    <literal>?</literal>
+  </define>
+  <define name="vertJc">
+    <!--'{' \mvertJc ('bot' | 'top') '}'-->
+    <!--'{' \mvertJc ('bot' | 'top') '}'-->
+    <!--'{'\mvertJc('bot'|'top')'}'-->
+    <literal>{</literal>
+    <control name="mvertJc"/>
+    <choice>
+      <literal>bot</literal>
+      <literal>top</literal>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="char">
+    <!--<ptext> | <atext> | '{' <char> '}'-->
+    <!--<ptext> | <atext> | '{' <char> '}'-->
+    <!--<ptext>|<atext>|'{'<char>'}'-->
+    <choice>
+      <ref name="ptext"/>
+      <ref name="atext"/>
+      <literal>{</literal>
+    </choice>
+    <ref name="char"/>
+    <literal>}</literal>
+  </define>
+  <define name="ptext">
+    <!--((<chrfmt> | <chshading> | <chrev>)* <data>+ )+-->
+    <!--((<chrfmt> | <chshading> | <chrev>)* <data>+ )+-->
+    <!--((((<chrfmt>|<chshading>|<chrev>)*)(<data>+) )+)-->
+    <one-or-more>
+      <zero-or-more>
+        <choice>
+          <ref name="chrfmt"/>
+          <ref name="chshading"/>
+          <ref name="chrev"/>
+        </choice>
+      </zero-or-more>
+      <one-or-more>
+        <ref name="data"/>
+      </one-or-more>
+      <notoken> </notoken>
+    </one-or-more>
+  </define>
+  <define name="data">
+    <!--#PCDATA | <uN> | <spec> | <pict> | <obj> | <do> | <footnote> | <annot> | <field> | <idx> | <toc> | <bookmark>-->
+    <!--#PCDATA | <uN> | <spec> | <pict> | <obj> | <do> | <footnote> | <annot> | <field> | <idx> | <toc> | <bookmark>-->
+    <!--#PCDATA|<uN>|<spec>|<pict>|<obj>|<do>|<footnote>|<annot>|<field>|<idx>|<toc>|<bookmark>-->
+    <choice>
+      <pcdata/>
+      <ref name="uN"/>
+      <ref name="spec"/>
+      <ref name="pict"/>
+      <ref name="obj"/>
+      <ref name="do"/>
+      <ref name="footnote"/>
+      <ref name="annot"/>
+      <ref name="field"/>
+      <ref name="idx"/>
+      <ref name="toc"/>
+      <ref name="bookmark"/>
+    </choice>
+  </define>
+  <define name="uN">
+    <!--\uN followed by equivalent character(s) in ANSI representation (see \uN & \ucN)-->
+    <!--\uN followed by equivalent character(s) in ANSI representation (see \uN & \ucN)-->
+    <!--\uNfollowed by equivalent character(s) in ANSI representation (see \uN & \ucN)-->
+    <control name="uNfollowed"/>
+    <token>by equivalent character(s) in ANSI representation (see \uN &amp; \ucN)</token>
+  </define>
+  <define name="chshading">
+    <!--(\chshdngN | <pat>) \chcfpatN? \chcbpatN?-->
+    <!--(\chshdngN | <pat>) \chcfpatN? \chcbpatN?-->
+    <!--(\chshdngN|<pat>)(\chcfpatN?)(\chcbpatN?)-->
+    <choice>
+      <value name="chshdng"/>
+      <ref name="pat"/>
+    </choice>
+    <optional>
+      <value name="chcfpat"/>
+    </optional>
+    <optional>
+      <value name="chcbpat"/>
+    </optional>
+  </define>
+  <define name="pat">
+    <!--\chbghoriz | \chbgvert | \chbgfdiag | \chbgbdiag | \chbgcross | \chbgdcross | \chbgdkhoriz | \chbgdkvert | \chbgdkfdiag | \chbgdkbdiag | \chbgdkcross | \chbgdkdcross -->
+    <!--\chbghoriz | \chbgvert | \chbgfdiag | \chbgbdiag | \chbgcross | \chbgdcross | \chbgdkhoriz | \chbgdkvert | \chbgdkfdiag | \chbgdkbdiag | \chbgdkcross | \chbgdkdcross -->
+    <!--\chbghoriz|\chbgvert|\chbgfdiag|\chbgbdiag|\chbgcross|\chbgdcross|\chbgdkhoriz|\chbgdkvert|\chbgdkfdiag|\chbgdkbdiag|\chbgdkcross|\chbgdkdcross -->
+    <choice>
+      <flag name="chbghoriz"/>
+      <flag name="chbgvert"/>
+      <flag name="chbgfdiag"/>
+      <flag name="chbgbdiag"/>
+      <flag name="chbgcross"/>
+      <flag name="chbgdcross"/>
+      <flag name="chbgdkhoriz"/>
+      <flag name="chbgdkvert"/>
+      <flag name="chbgdkfdiag"/>
+      <flag name="chbgdkbdiag"/>
+      <flag name="chbgdkcross"/>
+      <flag name="chbgdkdcross"/>
+    </choice>
+    <notoken> </notoken>
+  </define>
+  <define name="chrev">
+    <!--\revised? \revauthN? \revdttmN? \crauthN? \crdateN? \deleted? \revauthdelN? \revdttmdelN? \mvf? \mvt? \mvauthN? \mvdateN?-->
+    <!--\revised? \revauthN? \revdttmN? \crauthN? \crdateN? \deleted? \revauthdelN? \revdttmdelN? \mvf? \mvt? \mvauthN? \mvdateN?-->
+    <!--(\revised?)(\revauthN?)(\revdttmN?)(\crauthN?)(\crdateN?)(\deleted?)(\revauthdelN?)(\revdttmdelN?)(\mvf?)(\mvt?)(\mvauthN?)(\mvdateN?)-->
+    <optional>
+      <toggle name="revised"/>
+    </optional>
+    <optional>
+      <value name="revauth"/>
+    </optional>
+    <optional>
+      <value name="revdttm"/>
+    </optional>
+    <optional>
+      <value name="crauth"/>
+    </optional>
+    <optional>
+      <value name="crdate"/>
+    </optional>
+    <optional>
+      <toggle name="deleted"/>
+    </optional>
+    <optional>
+      <value name="revauthdel"/>
+    </optional>
+    <optional>
+      <value name="revdttmdel"/>
+    </optional>
+    <optional>
+      <flag name="mvf"/>
+    </optional>
+    <optional>
+      <flag name="mvt"/>
+    </optional>
+    <optional>
+      <value name="mvauth"/>
+    </optional>
+    <optional>
+      <value name="mvdate"/>
+    </optional>
+  </define>
+  <define name="atext">
+    <!--<ltrrun> | <rtlrun> | <sarun> | <nonsarun> | <saltrrun> | <nonsaltrrun> | <nonsartlrun> | <losbrun> | <hisbrun> | <dbrun>-->
+    <!--<ltrrun> | <rtlrun> | <sarun> | <nonsarun> | <saltrrun> | <nonsaltrrun> | <nonsartlrun> | <losbrun> | <hisbrun> | <dbrun>-->
+    <!--<ltrrun>|<rtlrun>|<sarun>|<nonsarun>|<saltrrun>|<nonsaltrrun>|<nonsartlrun>|<losbrun>|<hisbrun>|<dbrun>-->
+    <choice>
+      <ref name="ltrrun"/>
+      <ref name="rtlrun"/>
+      <ref name="sarun"/>
+      <ref name="nonsarun"/>
+      <ref name="saltrrun"/>
+      <ref name="nonsaltrrun"/>
+      <ref name="nonsartlrun"/>
+      <ref name="losbrun"/>
+      <ref name="hisbrun"/>
+      <ref name="dbrun"/>
+    </choice>
+  </define>
+  <define name="ltrrun">
+    <!--\rtlch \afN & <aprops>* \ltrch <ptext>-->
+    <!--\rtlch \afN & <aprops>* \ltrch <ptext>-->
+    <!--\rtlch\afN&(<aprops>*)\ltrch<ptext>-->
+    <flag name="rtlch"/>
+    <any>
+      <value name="af"/>
+      <zero-or-more>
+        <ref name="aprops"/>
+      </zero-or-more>
+    </any>
+    <flag name="ltrch"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="rtlrun">
+    <!--\ltrch \afN & <aprops>* \rtlch <ptext>-->
+    <!--\ltrch \afN & <aprops>* \rtlch <ptext>-->
+    <!--\ltrch\afN&(<aprops>*)\rtlch<ptext>-->
+    <flag name="ltrch"/>
+    <any>
+      <value name="af"/>
+      <zero-or-more>
+        <ref name="aprops"/>
+      </zero-or-more>
+    </any>
+    <flag name="rtlch"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="sarun">
+    <!--\fcsN \afN & <aprops>* \fcsN <ptext>-->
+    <!--\fcsN \afN & <aprops>* \fcsN <ptext>-->
+    <!--\fcsN\afN&(<aprops>*)\fcsN<ptext>-->
+    <value name="fcs"/>
+    <any>
+      <value name="af"/>
+      <zero-or-more>
+        <ref name="aprops"/>
+      </zero-or-more>
+    </any>
+    <value name="fcs"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="nonsarun">
+    <!--\fcsN \afN & <aprops>* \fcsN <ptext>-->
+    <!--\fcsN \afN & <aprops>* \fcsN <ptext>-->
+    <!--\fcsN\afN&(<aprops>*)\fcsN<ptext>-->
+    <value name="fcs"/>
+    <any>
+      <value name="af"/>
+      <zero-or-more>
+        <ref name="aprops"/>
+      </zero-or-more>
+    </any>
+    <value name="fcs"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="saltrrun">
+    <!--\rtlch \fcsN \af & <aprops>* \ltrch \fcsN <ptext>-->
+    <!--\rtlch \fcsN \af & <aprops>* \ltrch \fcsN <ptext>-->
+    <!--\rtlch\fcsN\af&(<aprops>*)\ltrch\fcsN<ptext>-->
+    <flag name="rtlch"/>
+    <value name="fcs"/>
+    <any>
+      <value name="af"/>
+      <zero-or-more>
+        <ref name="aprops"/>
+      </zero-or-more>
+    </any>
+    <flag name="ltrch"/>
+    <value name="fcs"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="nonsaltrrun">
+    <!--\rtlch \fcsN \af & <aprops>* \ltrch \fcsN <ptext>-->
+    <!--\rtlch \fcsN \af & <aprops>* \ltrch \fcsN <ptext>-->
+    <!--\rtlch\fcsN\af&(<aprops>*)\ltrch\fcsN<ptext>-->
+    <flag name="rtlch"/>
+    <value name="fcs"/>
+    <any>
+      <value name="af"/>
+      <zero-or-more>
+        <ref name="aprops"/>
+      </zero-or-more>
+    </any>
+    <flag name="ltrch"/>
+    <value name="fcs"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="nonsartlrun">
+    <!--\ltrch \fcsN \af & <aprops>* \rtlch \fcsN <ptext>-->
+    <!--\ltrch \fcsN \af & <aprops>* \rtlch \fcsN <ptext>-->
+    <!--\ltrch\fcsN\af&(<aprops>*)\rtlch\fcsN<ptext>-->
+    <flag name="ltrch"/>
+    <value name="fcs"/>
+    <any>
+      <value name="af"/>
+      <zero-or-more>
+        <ref name="aprops"/>
+      </zero-or-more>
+    </any>
+    <flag name="rtlch"/>
+    <value name="fcs"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="losbrun">
+    <!--\hich \afN & <aprops> \dbch \afN & <aprops> \loch <ptext>-->
+    <!--\hich \afN & <aprops> \dbch \afN & <aprops> \loch <ptext>-->
+    <!--\hich\afN&<aprops>\dbch\afN&<aprops>\loch<ptext>-->
+    <flag name="hich"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="dbch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="loch"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="hisbrun">
+    <!--\loch \afN & <aprops> \dbch \afN & <aprops> \hich <ptext>-->
+    <!--\loch \afN & <aprops> \dbch \afN & <aprops> \hich <ptext>-->
+    <!--\loch\afN&<aprops>\dbch\afN&<aprops>\hich<ptext>-->
+    <flag name="loch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="dbch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="hich"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="dbrun">
+    <!--\loch \afN & <aprops> \hich \afN & <aprops> \dbch <ptext>-->
+    <!--\loch \afN & <aprops> \hich \afN & <aprops> \dbch <ptext>-->
+    <!--\loch\afN&<aprops>\hich\afN&<aprops>\dbch<ptext>-->
+    <flag name="loch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="hich"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="dbch"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="variables">
+    <!--'{\*' \docvar '{' <varname> '}{' <vartext> '}}'-->
+    <!--'{' \*\docvar '{' <varname> '}{' <vartext> '}}'-->
+    <!--'{'\*\docvar'{'<varname>'}{'<vartext>'}}'-->
+    <literal>{</literal>
+    <destination name="docvar"/>
+    <literal>{</literal>
+    <ref name="varname"/>
+    <literal>}{</literal>
+    <ref name="vartext"/>
+    <literal>}}</literal>
+  </define>
+  <define name="varname">
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <pcdata/>
+  </define>
+  <define name="vartext">
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <pcdata/>
+  </define>
+  <define name="bookmark">
+    <!--<bookstart> | <bookend>-->
+    <!--<bookstart> | <bookend>-->
+    <!--<bookstart>|<bookend>-->
+    <choice>
+      <ref name="bookstart"/>
+      <ref name="bookend"/>
+    </choice>
+  </define>
+  <define name="bookstart">
+    <!--'{\*' \bkmkstart (\bkmkcolfN? & \bkmkcollN?) #PCDATA '}'-->
+    <!--'{' \*\bkmkstart (\bkmkcolfN? & \bkmkcollN?) #PCDATA '}'-->
+    <!--'{'\*\bkmkstart((\bkmkcolfN?)&(\bkmkcollN?))#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="bkmkstart"/>
+    <any>
+      <optional>
+        <value name="bkmkcolf"/>
+      </optional>
+      <optional>
+        <value name="bkmkcoll"/>
+      </optional>
+    </any>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="bookend">
+    <!--'{\*' \bkmkend #PCDATA '}'-->
+    <!--'{' \*\bkmkend #PCDATA '}'-->
+    <!--'{'\*\bkmkend#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="bkmkend"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="movebook">
+    <!--<movebookstart> | <movebookend>-->
+    <!--<movebookstart> | <movebookend>-->
+    <!--<movebookstart>|<movebookend>-->
+    <choice>
+      <ref name="movebookstart"/>
+      <ref name="movebookend"/>
+    </choice>
+  </define>
+  <define name="movebookstart">
+    <!--'{\*' (\mvfmf | \mvtof) #PCDATA #SDATA '}'-->
+    <!--'{\*' (\mvfmf | \mvtof) #PCDATA #SDATA '}'-->
+    <!--'{\*'(\mvfmf|\mvtof)#PCDATA#SDATA'}'-->
+    <literal>{\*</literal>
+    <choice>
+      <destination name="mvfmf"/>
+      <destination name="mvtof"/>
+    </choice>
+    <pcdata/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="movebookend">
+    <!--'{\*' (\mvfml | \mvtol) #PCDATA '}'-->
+    <!--'{\*' (\mvfml | \mvtol) #PCDATA '}'-->
+    <!--'{\*'(\mvfml|\mvtol)#PCDATA'}'-->
+    <literal>{\*</literal>
+    <choice>
+      <destination name="mvfml"/>
+      <destination name="mvtol"/>
+    </choice>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="protexcept">
+    <!--<protstart> | <protend>-->
+    <!--<protstart> | <protend>-->
+    <!--<protstart>|<protend>-->
+    <choice>
+      <ref name="protstart"/>
+      <ref name="protend"/>
+    </choice>
+  </define>
+  <define name="protstart">
+    <!--'{\*' \protstart #PCDATA '}'-->
+    <!--'{' \*\protstart #PCDATA '}'-->
+    <!--'{'\*\protstart#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="protstart"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="protend">
+    <!--'{\*' \protend #PCDATA '}'-->
+    <!--'{' \*\protend #PCDATA '}'-->
+    <!--'{'\*\protend#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="protend"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="pict">
+    <!--'{' \pict (<pictdata> | <shpdata>) '}'-->
+    <!--'{' \pict (<pictdata> | <shpdata>) '}'-->
+    <!--'{'\pict(<pictdata>|<shpdata>)'}'-->
+    <literal>{</literal>
+    <destination name="pict"/>
+    <choice>
+      <ref name="pictdata"/>
+      <ref name="shpdata"/>
+    </choice>
+    <literal>}</literal>
+  </define>
+  <define name="pictdata">
+    <!--(<brdr>? & <shading>? & <picttype> & <pictsize> & <metafileinfo>?) <data>-->
+    <!--(<brdr>? & <shading>? & <picttype> & <pictsize> & <metafileinfo>?) <data>-->
+    <!--((<brdr>?)&(<shading>?)&<picttype>&<pictsize>&(<metafileinfo>?))<data>-->
+    <any>
+      <optional>
+        <ref name="brdr"/>
+      </optional>
+      <optional>
+        <ref name="shading"/>
+      </optional>
+      <ref name="picttype"/>
+      <ref name="pictsize"/>
+      <optional>
+        <ref name="metafileinfo"/>
+      </optional>
+    </any>
+    <ref name="data"/>
+  </define>
+  <define name="picttype">
+    <!--\emfblip | \pngblip | \jpegblip | \macpict | \pmmetafileN | \wmetafileN | \dibitmapN <bitmapinfo> | \wbitmapN <bitmapinfo>-->
+    <!--\emfblip | \pngblip | \jpegblip | \macpict | \pmmetafileN | \wmetafileN | \dibitmapN <bitmapinfo> | \wbitmapN <bitmapinfo>-->
+    <!--\emfblip|\pngblip|\jpegblip|\macpict|\pmmetafileN|\wmetafileN|\dibitmapN<bitmapinfo>|\wbitmapN<bitmapinfo>-->
+    <choice>
+      <flag name="emfblip"/>
+      <flag name="pngblip"/>
+      <flag name="jpegblip"/>
+      <flag name="macpict"/>
+      <value name="pmmetafile"/>
+      <value name="wmetafile"/>
+      <value name="dibitmap"/>
+    </choice>
+    <choice>
+      <ref name="bitmapinfo"/>
+      <value name="wbitmap"/>
+    </choice>
+    <ref name="bitmapinfo"/>
+  </define>
+  <define name="bitmapinfo">
+    <!--\wbmbitspixelN & \wbmplanesN & \wbmwidthbytesN-->
+    <!--\wbmbitspixelN & \wbmplanesN & \wbmwidthbytesN-->
+    <!--\wbmbitspixelN&\wbmplanesN&\wbmwidthbytesN-->
+    <any>
+      <value name="wbmbitspixel"/>
+      <value name="wbmplanes"/>
+      <control name="wbmwidthbytes"/>
+    </any>
+  </define>
+  <define name="pictsize">
+    <!--(\picwN & \pichN) \picwgoalN? & \pichgoalN? \picscalexN? & \picscaleyN? & \picscaled? & \piccroptN? & \piccropbN? & \piccroprN? & \piccroplN?-->
+    <!--(\picwN & \pichN) \picwgoalN? & \pichgoalN? \picscalexN? & \picscaleyN? & \picscaled? & \piccroptN? & \piccropbN? & \piccroprN? & \piccroplN?-->
+    <!--(\picwN&\pichN)(\picwgoalN?)&(\pichgoalN?)(\picscalexN?)&(\picscaleyN?)&(\picscaled?)&(\piccroptN?)&(\piccropbN?)&(\piccroprN?)&(\piccroplN?)-->
+    <any>
+      <value name="picw"/>
+      <value name="pich"/>
+    </any>
+    <any>
+      <optional>
+        <value name="picwgoal"/>
+      </optional>
+      <optional>
+        <value name="pichgoal"/>
+      </optional>
+    </any>
+    <any>
+      <optional>
+        <value name="picscalex"/>
+      </optional>
+      <optional>
+        <value name="picscaley"/>
+      </optional>
+      <optional>
+        <flag name="picscaled"/>
+      </optional>
+      <optional>
+        <value name="piccropt"/>
+      </optional>
+      <optional>
+        <value name="piccropb"/>
+      </optional>
+      <optional>
+        <value name="piccropr"/>
+      </optional>
+      <optional>
+        <value name="piccropl"/>
+      </optional>
+    </any>
+  </define>
+  <define name="metafileinfo">
+    <!--\picbmp & \picbppN-->
+    <!--\picbmp & \picbppN-->
+    <!--\picbmp&\picbppN-->
+    <any>
+      <flag name="picbmp"/>
+      <value name="picbpp"/>
+    </any>
+  </define>
+  <define name="data">
+    <!--(\binN #BDATA) | #SDATA-->
+    <!--(\binN #BDATA) | #SDATA-->
+    <!--(\binN#BDATA)|#SDATA-->
+    <choice>
+      <value name="bin"/>
+      <bdata/>
+      <sdata/>
+    </choice>
+  </define>
+  <define name="shpdata">
+    <!--'{\*' \picprop \shplidN? <shpprop>+ '}'-->
+    <!--'{' \*\picprop \shplidN? <shpprop>+ '}'-->
+    <!--'{'\*\picprop(\shplidN?)(<shpprop>+)'}'-->
+    <literal>{</literal>
+    <destination name="picprop"/>
+    <optional>
+      <value name="shplid"/>
+    </optional>
+    <one-or-more>
+      <ref name="shpprop"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="shpprop">
+    <!--'{' \sp '{' \sn <shpname> '}{' \sv <shpvalue> '}}'-->
+    <!--'{' \sp '{' \sn <shpname> '}{' \sv <shpvalue> '}}'-->
+    <!--'{'\sp'{'\sn<shpname>'}{'\sv<shpvalue>'}}'-->
+    <literal>{</literal>
+    <destination name="sp"/>
+    <literal>{</literal>
+    <destination name="sn"/>
+    <ref name="shpname"/>
+    <literal>}{</literal>
+    <destination name="sv"/>
+    <ref name="shpvalue"/>
+    <literal>}}</literal>
+  </define>
+  <define name="shpname">
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <!--#PCDATA-->
+    <pcdata/>
+  </define>
+  <define name="shpvalue">
+    <!--#BDATA-->
+    <!--#BDATA-->
+    <!--#BDATA-->
+    <bdata/>
+  </define>
+  <define name="xmltagopen">
+    <!--'{\*' \xmlopen \xmlnsN <xmltagtype><xmltagname><xmlattr>* '}'-->
+    <!--'{' \*\xmlopen \xmlnsN <xmltagtype><xmltagname><xmlattr>* '}'-->
+    <!--'{'\*\xmlopen\xmlnsN<xmltagtype><xmltagname>(<xmlattr>*)'}'-->
+    <literal>{</literal>
+    <destination name="xmlopen"/>
+    <value name="xmlns"/>
+    <ref name="xmltagtype"/>
+    <ref name="xmltagname"/>
+    <zero-or-more>
+      <ref name="xmlattr"/>
+    </zero-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="xmltagtype">
+    <!--\xmlsdttunknown | \xmlsdttregular | \xmlsdttpara | \xmlsdttcell | \xmlsdttrow | \xmlattr-->
+    <!--\xmlsdttunknown | \xmlsdttregular | \xmlsdttpara | \xmlsdttcell | \xmlsdttrow | \xmlattr-->
+    <!--\xmlsdttunknown|\xmlsdttregular|\xmlsdttpara|\xmlsdttcell|\xmlsdttrow|\xmlattr-->
+    <choice>
+      <flag name="xmlsdttunknown"/>
+      <flag name="xmlsdttregular"/>
+      <flag name="xmlsdttpara"/>
+      <flag name="xmlsdttcell"/>
+      <flag name="xmlsdttrow"/>
+      <flag name="xmlattr"/>
+    </choice>
+  </define>
+  <define name="xmltagname">
+    <!--'{' \xmlname #PCDATA '}'-->
+    <!--'{' \xmlname #PCDATA '}'-->
+    <!--'{'\xmlname#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="xmlname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="xmlattr">
+    <!--'{' \xmlattr <xmlattrns><xmlattrname><xmlattrvalue> '}'-->
+    <!--'{' \xmlattr <xmlattrns><xmlattrname><xmlattrvalue> '}'-->
+    <!--'{'\xmlattr<xmlattrns><xmlattrname><xmlattrvalue>'}'-->
+    <literal>{</literal>
+    <flag name="xmlattr"/>
+    <ref name="xmlattrns"/>
+    <ref name="xmlattrname"/>
+    <ref name="xmlattrvalue"/>
+    <literal>}</literal>
+  </define>
+  <define name="xmlattrns">
+    <!--\xmlattrnsN-->
+    <!--\xmlattrnsN-->
+    <!--\xmlattrnsN-->
+    <value name="xmlattrns"/>
+  </define>
+  <define name="xmlattrname">
+    <!--\xmlattrname #PCDATA-->
+    <!--\xmlattrname #PCDATA-->
+    <!--\xmlattrname#PCDATA-->
+    <destination name="xmlattrname"/>
+    <pcdata/>
+  </define>
+  <define name="xmlattrvalue">
+    <!--\xmlattrvalue #PCDATA-->
+    <!--\xmlattrvalue #PCDATA-->
+    <!--\xmlattrvalue#PCDATA-->
+    <destination name="xmlattrvalue"/>
+    <pcdata/>
+  </define>
+  <define name="xmltagclose">
+    <!--'{\*' \xmlclose '}'-->
+    <!--'{' \*\xmlclose '}'-->
+    <!--'{'\*\xmlclose'}'-->
+    <literal>{</literal>
+    <destination name="xmlclose"/>
+    <literal>}</literal>
+  </define>
+  <define name="smarttagopen">
+    <!--'{\*' \xmlopen \xmlnsN <smarttagname><xmlattr>* '}'-->
+    <!--'{' \*\xmlopen \xmlnsN <smarttagname><xmlattr>* '}'-->
+    <!--'{'\*\xmlopen\xmlnsN<smarttagname>(<xmlattr>*)'}'-->
+    <literal>{</literal>
+    <destination name="xmlopen"/>
+    <value name="xmlns"/>
+    <ref name="smarttagname"/>
+    <zero-or-more>
+      <ref name="xmlattr"/>
+    </zero-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="smarttagname">
+    <!--'{' \factoidname #PCDATA '}'-->
+    <!--'{' \factoidname #PCDATA '}'-->
+    <!--'{'\factoidname#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="factoidname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="xmlattr">
+    <!--'{' \xmlattr \xmlattrnsN <xmlattrname><xmlattrvalue> '}'-->
+    <!--'{' \xmlattr \xmlattrnsN <xmlattrname><xmlattrvalue> '}'-->
+    <!--'{'\xmlattr\xmlattrnsN<xmlattrname><xmlattrvalue>'}'-->
+    <literal>{</literal>
+    <flag name="xmlattr"/>
+    <value name="xmlattrns"/>
+    <ref name="xmlattrname"/>
+    <ref name="xmlattrvalue"/>
+    <literal>}</literal>
+  </define>
+  <define name="xmlattrname">
+    <!--\xmlattrname #PCDATA-->
+    <!--\xmlattrname #PCDATA-->
+    <!--\xmlattrname#PCDATA-->
+    <destination name="xmlattrname"/>
+    <pcdata/>
+  </define>
+  <define name="xmlattrvalue">
+    <!--\xmlattrvalue #PCDATA-->
+    <!--\xmlattrvalue #PCDATA-->
+    <!--\xmlattrvalue#PCDATA-->
+    <destination name="xmlattrvalue"/>
+    <pcdata/>
+  </define>
+  <define name="smarttagclose">
+    <!--'{\*' \xmlclose '}'-->
+    <!--'{' \*\xmlclose '}'-->
+    <!--'{'\*\xmlclose'}'-->
+    <literal>{</literal>
+    <destination name="xmlclose"/>
+    <literal>}</literal>
+  </define>
+  <define name="datastore">
+    <!--'{\*' \datastore #SDATA '}'-->
+    <!--'{' \*\datastore #SDATA '}'-->
+    <!--'{'\*\datastore#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="datastore"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="obj">
+    <!--('{' \object (<objtype> & <objmod>? & <objclass>? & <objname>? & <objtime>? & <objsize>? & <rsltmod>?) <objclsid> ? <objdata> <result> '}' ) | <pubobject>-->
+    <!--('{' \object (<objtype> & <objmod>? & <objclass>? & <objname>? & <objtime>? & <objsize>? & <rsltmod>?) <objclsid> ? <objdata> <result> '}' ) | <pubobject>-->
+    <!--('{'\object(<objtype>&(<objmod>?)&(<objclass>?)&(<objname>?)&(<objtime>?)&(<objsize>?)&(<rsltmod>?))(<objclsid>?)<objdata><result>'}' )|<pubobject>-->
+    <choice>
+      <literal>{</literal>
+      <destination name="object"/>
+      <any>
+        <any>
+          <ref name="objtype"/>
+          <optional>
+            <ref name="objmod"/>
+          </optional>
+          <optional>
+            <ref name="objclass"/>
+          </optional>
+          <optional>
+            <ref name="objname"/>
+          </optional>
+          <optional>
+            <ref name="objtime"/>
+          </optional>
+          <optional>
+            <ref name="objsize"/>
+          </optional>
+        </any>
+        <optional>
+          <ref name="rsltmod"/>
+        </optional>
+      </any>
+      <optional>
+        <ref name="objclsid"/>
+      </optional>
+      <ref name="objdata"/>
+      <ref name="result"/>
+      <literal>}</literal>
+      <notoken> </notoken>
+      <ref name="pubobject"/>
+    </choice>
+  </define>
+  <define name="objtype">
+    <!--\objemb | \objlink | \objautlink | \objsub | \objpub | \objicemb | \objhtml | \objocx-->
+    <!--\objemb | \objlink | \objautlink | \objsub | \objpub | \objicemb | \objhtml | \objocx-->
+    <!--\objemb|\objlink|\objautlink|\objsub|\objpub|\objicemb|\objhtml|\objocx-->
+    <choice>
+      <flag name="objemb"/>
+      <flag name="objlink"/>
+      <flag name="objautlink"/>
+      <flag name="objsub"/>
+      <flag name="objpub"/>
+      <flag name="objicemb"/>
+      <flag name="objhtml"/>
+      <flag name="objocx"/>
+    </choice>
+  </define>
+  <define name="objmod">
+    <!--\linkself? & \objlock? | \objupdate?-->
+    <!--\linkself? & \objlock? | \objupdate?-->
+    <!--(\linkself?)&(\objlock?)|(\objupdate?)-->
+    <choice>
+      <any>
+        <optional>
+          <flag name="linkself"/>
+        </optional>
+        <optional>
+          <flag name="objlock"/>
+        </optional>
+      </any>
+      <optional>
+        <flag name="objupdate"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="objclass">
+    <!--'{\*' \objclass #PCDATA '}'-->
+    <!--'{' \*\objclass #PCDATA '}'-->
+    <!--'{'\*\objclass#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="objclass"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="objname">
+    <!--'{\*' \objname #PCDATA '}'-->
+    <!--'{' \*\objname #PCDATA '}'-->
+    <!--'{'\*\objname#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="objname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="objtime">
+    <!--'{\*' \objtime <time> '}'-->
+    <!--'{' \*\objtime <time> '}'-->
+    <!--'{'\*\objtime<time>'}'-->
+    <literal>{</literal>
+    <destination name="objtime"/>
+    <ref name="time"/>
+    <literal>}</literal>
+  </define>
+  <define name="rsltmod">
+    <!--\rsltmerge? & <rslttype>?-->
+    <!--\rsltmerge? & <rslttype>?-->
+    <!--(\rsltmerge?)&(<rslttype>?)-->
+    <any>
+      <optional>
+        <flag name="rsltmerge"/>
+      </optional>
+      <optional>
+        <ref name="rslttype"/>
+      </optional>
+    </any>
+  </define>
+  <define name="rslttype">
+    <!--\rsltrtf | \rslttxt | \rsltpict | \rsltbmp | \rslthtml-->
+    <!--\rsltrtf | \rslttxt | \rsltpict | \rsltbmp | \rslthtml-->
+    <!--\rsltrtf|\rslttxt|\rsltpict|\rsltbmp|\rslthtml-->
+    <choice>
+      <flag name="rsltrtf"/>
+      <flag name="rslttxt"/>
+      <flag name="rsltpict"/>
+      <flag name="rsltbmp"/>
+      <flag name="rslthtml"/>
+    </choice>
+  </define>
+  <define name="objsize">
+    <!--\objsetsize? & \objalignN? & \objtransyN? & <objhw>? & \objcroptN? & \objcropbN? & \objcroplN? & \objcroprN? & \objscalexN? & \objscaleyN?-->
+    <!--\objsetsize? & \objalignN? & \objtransyN? & <objhw>? & \objcroptN? & \objcropbN? & \objcroplN? & \objcroprN? & \objscalexN? & \objscaleyN?-->
+    <!--(\objsetsize?)&(\objalignN?)&(\objtransyN?)&(<objhw>?)&(\objcroptN?)&(\objcropbN?)&(\objcroplN?)&(\objcroprN?)&(\objscalexN?)&(\objscaleyN?)-->
+    <any>
+      <optional>
+        <flag name="objsetsize"/>
+      </optional>
+      <optional>
+        <value name="objalign"/>
+      </optional>
+      <optional>
+        <value name="objtransy"/>
+      </optional>
+      <optional>
+        <ref name="objhw"/>
+      </optional>
+      <optional>
+        <value name="objcropt"/>
+      </optional>
+      <optional>
+        <value name="objcropb"/>
+      </optional>
+      <optional>
+        <value name="objcropl"/>
+      </optional>
+      <optional>
+        <value name="objcropr"/>
+      </optional>
+      <optional>
+        <value name="objscalex"/>
+      </optional>
+      <optional>
+        <value name="objscaley"/>
+      </optional>
+    </any>
+  </define>
+  <define name="objhw">
+    <!--\objhN & \objwN-->
+    <!--\objhN & \objwN-->
+    <!--\objhN&\objwN-->
+    <any>
+      <value name="objh"/>
+      <value name="objw"/>
+    </any>
+  </define>
+  <define name="objclsid">
+    <!--'{\*' \oleclsid #PCDATA '}'-->
+    <!--'{' \*\oleclsid #PCDATA '}'-->
+    <!--'{'\*\oleclsid#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="oleclsid"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="objdata">
+    <!--'{\*' \objdata (<objalias>? & <objsect>?) <data> '}'-->
+    <!--'{' \*\objdata (<objalias>? & <objsect>?) <data> '}'-->
+    <!--'{'\*\objdata((<objalias>?)&(<objsect>?))<data>'}'-->
+    <literal>{</literal>
+    <destination name="objdata"/>
+    <any>
+      <optional>
+        <ref name="objalias"/>
+      </optional>
+      <optional>
+        <ref name="objsect"/>
+      </optional>
+    </any>
+    <ref name="data"/>
+    <literal>}</literal>
+  </define>
+  <define name="objalias">
+    <!--'{\*' \objalias <data> '}'-->
+    <!--'{' \*\objalias <data> '}'-->
+    <!--'{'\*\objalias<data>'}'-->
+    <literal>{</literal>
+    <destination name="objalias"/>
+    <ref name="data"/>
+    <literal>}</literal>
+  </define>
+  <define name="objsect">
+    <!--'{\*' \objsect <data> '}'-->
+    <!--'{' \*\objsect <data> '}'-->
+    <!--'{'\*\objsect<data>'}'-->
+    <literal>{</literal>
+    <destination name="objsect"/>
+    <ref name="data"/>
+    <literal>}</literal>
+  </define>
+  <define name="result">
+    <!--'{' \result <para>+ '}'-->
+    <!--'{' \result <para>+ '}'-->
+    <!--'{'\result(<para>+)'}'-->
+    <literal>{</literal>
+    <destination name="result"/>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="pubobject">
+    <!--'{\*' \bkmkstart \bkmkpub \pubauto? (<objalias>? & <objsect>) #PCDATA '}'-->
+    <!--'{' \*\bkmkstart \bkmkpub \pubauto? (<objalias>? & <objsect>) #PCDATA '}'-->
+    <!--'{'\*\bkmkstart\bkmkpub(\pubauto?)((<objalias>?)&<objsect>)#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="bkmkstart"/>
+    <flag name="bkmkpub"/>
+    <optional>
+      <flag name="pubauto"/>
+    </optional>
+    <any>
+      <optional>
+        <ref name="objalias"/>
+      </optional>
+      <ref name="objsect"/>
+    </any>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="do">
+    <!--'{\*' \do <dohead> <dpinfo> '}'-->
+    <!--'{' \*\do <dohead> <dpinfo> '}'-->
+    <!--'{'\*\do<dohead><dpinfo>'}'-->
+    <literal>{</literal>
+    <destination name="do"/>
+    <ref name="dohead"/>
+    <ref name="dpinfo"/>
+    <literal>}</literal>
+  </define>
+  <define name="dohead">
+    <!--<dobx> <doby> <dodhgt> <dolock>?-->
+    <!--<dobx> <doby> <dodhgt> <dolock>?-->
+    <!--<dobx><doby><dodhgt>(<dolock>?)-->
+    <ref name="dobx"/>
+    <ref name="doby"/>
+    <ref name="dodhgt"/>
+    <optional>
+      <ref name="dolock"/>
+    </optional>
+  </define>
+  <define name="dobx">
+    <!--\dobxpage | \dobxcolumn | \dobxmargin-->
+    <!--\dobxpage | \dobxcolumn | \dobxmargin-->
+    <!--\dobxpage|\dobxcolumn|\dobxmargin-->
+    <choice>
+      <flag name="dobxpage"/>
+      <flag name="dobxcolumn"/>
+      <flag name="dobxmargin"/>
+    </choice>
+  </define>
+  <define name="doby">
+    <!--\dobypage | \dobypara | \dobymargin-->
+    <!--\dobypage | \dobypara | \dobymargin-->
+    <!--\dobypage|\dobypara|\dobymargin-->
+    <choice>
+      <flag name="dobypage"/>
+      <flag name="dobypara"/>
+      <flag name="dobymargin"/>
+    </choice>
+  </define>
+  <define name="dodhgt">
+    <!--\dodhgtN-->
+    <!--\dodhgtN-->
+    <!--\dodhgtN-->
+    <value name="dodhgt"/>
+  </define>
+  <define name="dolock">
+    <!--\dolock-->
+    <!--\dolock-->
+    <!--\dolock-->
+    <flag name="dolock"/>
+  </define>
+  <define name="dpinfo">
+    <!-- <dpgroup> | <dpcallout> | <dpsimple>-->
+    <!-- <dpgroup> | <dpcallout> | <dpsimple>-->
+    <!--<dpgroup>|<dpcallout>|<dpsimple>-->
+    <choice>
+      <ref name="dpgroup"/>
+      <ref name="dpcallout"/>
+      <ref name="dpsimple"/>
+    </choice>
+  </define>
+  <define name="dpgroup">
+    <!--\dpgroup \dpcountN <dphead> <dpinfo>+ \dpendgroup <dphead> -->
+    <!--\dpgroup \dpcountN <dphead> <dpinfo>+ \dpendgroup <dphead> -->
+    <!--\dpgroup\dpcountN<dphead>(<dpinfo>+)\dpendgroup<dphead> -->
+    <flag name="dpgroup"/>
+    <value name="dpcount"/>
+    <ref name="dphead"/>
+    <one-or-more>
+      <ref name="dpinfo"/>
+    </one-or-more>
+    <flag name="dpendgroup"/>
+    <ref name="dphead"/>
+    <notoken> </notoken>
+  </define>
+  <define name="dpcallout">
+    <!--\dpcallout <cotype> <coangle>? <coaccent>? <cosmartattach>? <cobestfit>? <cominusx>? <cominusy>? <coborder>? <codescent>? \dpcooffsetN \dpcolengthN <dphead> <dppolyline> <dphead> <dpprops> <dptextbox> <dphead> <dpprops>-->
+    <!--\dpcallout <cotype> <coangle>? <coaccent>? <cosmartattach>? <cobestfit>? <cominusx>? <cominusy>? <coborder>? <codescent>? \dpcooffsetN \dpcolengthN <dphead> <dppolyline> <dphead> <dpprops> <dptextbox> <dphead> <dpprops>-->
+    <!--\dpcallout<cotype>(<coangle>?)(<coaccent>?)(<cosmartattach>?)(<cobestfit>?)(<cominusx>?)(<cominusy>?)(<coborder>?)(<codescent>?)\dpcooffsetN\dpcolengthN<dphead><dppolyline><dphead><dpprops><dptextbox><dphead><dpprops>-->
+    <flag name="dpcallout"/>
+    <ref name="cotype"/>
+    <optional>
+      <ref name="coangle"/>
+    </optional>
+    <optional>
+      <ref name="coaccent"/>
+    </optional>
+    <optional>
+      <ref name="cosmartattach"/>
+    </optional>
+    <optional>
+      <ref name="cobestfit"/>
+    </optional>
+    <optional>
+      <ref name="cominusx"/>
+    </optional>
+    <optional>
+      <ref name="cominusy"/>
+    </optional>
+    <optional>
+      <ref name="coborder"/>
+    </optional>
+    <optional>
+      <ref name="codescent"/>
+    </optional>
+    <value name="dpcooffset"/>
+    <value name="dpcolength"/>
+    <ref name="dphead"/>
+    <ref name="dppolyline"/>
+    <ref name="dphead"/>
+    <ref name="dpprops"/>
+    <ref name="dptextbox"/>
+    <ref name="dphead"/>
+    <ref name="dpprops"/>
+  </define>
+  <define name="dpsimple">
+    <!--<dpsimpledpk> <dphead> <dpprops>-->
+    <!--<dpsimpledpk> <dphead> <dpprops>-->
+    <!--<dpsimpledpk><dphead><dpprops>-->
+    <ref name="dpsimpledpk"/>
+    <ref name="dphead"/>
+    <ref name="dpprops"/>
+  </define>
+  <define name="dpsimpledpk">
+    <!--<dpline> | <dprect> | <dptextbox> | <dpellipse> | <dppolyline> | <dparc>-->
+    <!--<dpline> | <dprect> | <dptextbox> | <dpellipse> | <dppolyline> | <dparc>-->
+    <!--<dpline>|<dprect>|<dptextbox>|<dpellipse>|<dppolyline>|<dparc>-->
+    <choice>
+      <ref name="dpline"/>
+      <ref name="dprect"/>
+      <ref name="dptextbox"/>
+      <ref name="dpellipse"/>
+      <ref name="dppolyline"/>
+      <ref name="dparc"/>
+    </choice>
+  </define>
+  <define name="dpline">
+    <!--\dpline <dppt> <dppt>-->
+    <!--\dpline <dppt> <dppt>-->
+    <!--\dpline<dppt><dppt>-->
+    <flag name="dpline"/>
+    <ref name="dppt"/>
+    <ref name="dppt"/>
+  </define>
+  <define name="dprect">
+    <!--\dprect (\dproundr)?-->
+    <!--\dprect (\dproundr)?-->
+    <!--\dprect((\dproundr)?)-->
+    <flag name="dprect"/>
+    <optional>
+      <flag name="dproundr"/>
+    </optional>
+  </define>
+  <define name="dptextbox">
+    <!--\dptxbx (\dptxlrtb | \dptxtbrl | \dptxbtlr | \dptxlrtbv | \dptxtbrlv)? \dptxbxmarN '{' \dptxbxtext <para>+’}’-->
+    <!--\dptxbx (\dptxlrtb | \dptxtbrl | \dptxbtlr | \dptxlrtbv | \dptxtbrlv)? \dptxbxmarN '{' \dptxbxtext <para>+’}’-->
+    <!--\dptxbx((\dptxlrtb|\dptxtbrl|\dptxbtlr|\dptxlrtbv|\dptxtbrlv)?)\dptxbxmarN'{'\dptxbxtext(<para>+)’}’-->
+    <flag name="dptxbx"/>
+    <optional>
+      <choice>
+        <flag name="dptxlrtb"/>
+        <flag name="dptxtbrl"/>
+        <flag name="dptxbtlr"/>
+        <flag name="dptxlrtbv"/>
+        <flag name="dptxtbrlv"/>
+      </choice>
+    </optional>
+    <value name="dptxbxmar"/>
+    <literal>{</literal>
+    <destination name="dptxbxtext"/>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <token>’}’</token>
+  </define>
+  <define name="dpellipse">
+    <!--\dpellipse-->
+    <!--\dpellipse-->
+    <!--\dpellipse-->
+    <flag name="dpellipse"/>
+  </define>
+  <define name="dparc">
+    <!--\dparc \dparcflipx? \dparcflipy?-->
+    <!--\dparc \dparcflipx? \dparcflipy?-->
+    <!--\dparc(\dparcflipx?)(\dparcflipy?)-->
+    <flag name="dparc"/>
+    <optional>
+      <flag name="dparcflipx"/>
+    </optional>
+    <optional>
+      <flag name="dparcflipy"/>
+    </optional>
+  </define>
+  <define name="dppolyline">
+    <!--\dppolyline (\dppolygon)? \dppolycountN <dppt>+-->
+    <!--\dppolyline (\dppolygon)? \dppolycountN <dppt>+-->
+    <!--\dppolyline((\dppolygon)?)\dppolycountN(<dppt>+)-->
+    <flag name="dppolyline"/>
+    <optional>
+      <flag name="dppolygon"/>
+    </optional>
+    <value name="dppolycount"/>
+    <one-or-more>
+      <ref name="dppt"/>
+    </one-or-more>
+  </define>
+  <define name="dppt">
+    <!--\dpptxN \dpptyN-->
+    <!--\dpptxN \dpptyN-->
+    <!--\dpptxN\dpptyN-->
+    <value name="dpptx"/>
+    <value name="dppty"/>
+  </define>
+  <define name="dphead">
+    <!--\dpxN \dpyN \dpxsizeN \dpysizeN-->
+    <!--\dpxN \dpyN \dpxsizeN \dpysizeN-->
+    <!--\dpxN\dpyN\dpxsizeN\dpysizeN-->
+    <value name="dpx"/>
+    <value name="dpy"/>
+    <value name="dpxsize"/>
+    <value name="dpysize"/>
+  </define>
+  <define name="cotype">
+    <!--\dpcotright | \dpcotsingle | \dpcotdouble | \dpcottriple-->
+    <!--\dpcotright | \dpcotsingle | \dpcotdouble | \dpcottriple-->
+    <!--\dpcotright|\dpcotsingle|\dpcotdouble|\dpcottriple-->
+    <choice>
+      <flag name="dpcotright"/>
+      <flag name="dpcotsingle"/>
+      <flag name="dpcotdouble"/>
+      <flag name="dpcottriple"/>
+    </choice>
+  </define>
+  <define name="coangle">
+    <!--\dpcoaN-->
+    <!--\dpcoaN-->
+    <!--\dpcoaN-->
+    <value name="dpcoa"/>
+  </define>
+  <define name="coaccent">
+    <!--\dpcoaccent-->
+    <!--\dpcoaccent-->
+    <!--\dpcoaccent-->
+    <flag name="dpcoaccent"/>
+  </define>
+  <define name="cosmartattach">
+    <!--\dpcosmarta-->
+    <!--\dpcosmarta-->
+    <!--\dpcosmarta-->
+    <flag name="dpcosmarta"/>
+  </define>
+  <define name="cobestfit">
+    <!--\dpcobestfit-->
+    <!--\dpcobestfit-->
+    <!--\dpcobestfit-->
+    <flag name="dpcobestfit"/>
+  </define>
+  <define name="cominusx">
+    <!--\dpcominusx-->
+    <!--\dpcominusx-->
+    <!--\dpcominusx-->
+    <flag name="dpcominusx"/>
+  </define>
+  <define name="cominusy">
+    <!--\dpcominusy-->
+    <!--\dpcominusy-->
+    <!--\dpcominusy-->
+    <flag name="dpcominusy"/>
+  </define>
+  <define name="coborder">
+    <!--\dpcoborder-->
+    <!--\dpcoborder-->
+    <!--\dpcoborder-->
+    <flag name="dpcoborder"/>
+  </define>
+  <define name="codescent">
+    <!--\dpcodtop | \dpcodcenter | \dpcodbottom | \dpcodabs-->
+    <!--\dpcodtop | \dpcodcenter | \dpcodbottom | \dpcodabs-->
+    <!--\dpcodtop|\dpcodcenter|\dpcodbottom|\dpcodabs-->
+    <choice>
+      <flag name="dpcodtop"/>
+      <flag name="dpcodcenter"/>
+      <flag name="dpcodbottom"/>
+      <flag name="dpcodabs"/>
+    </choice>
+  </define>
+  <define name="dpprops">
+    <!--<lineprops>? <fillprops>? <endstylestart>? <endstyleend>? <shadow>?-->
+    <!--<lineprops>? <fillprops>? <endstylestart>? <endstyleend>? <shadow>?-->
+    <!--(<lineprops>?)(<fillprops>?)(<endstylestart>?)(<endstyleend>?)(<shadow>?)-->
+    <optional>
+      <ref name="lineprops"/>
+    </optional>
+    <optional>
+      <ref name="fillprops"/>
+    </optional>
+    <optional>
+      <ref name="endstylestart"/>
+    </optional>
+    <optional>
+      <ref name="endstyleend"/>
+    </optional>
+    <optional>
+      <ref name="shadow"/>
+    </optional>
+  </define>
+  <define name="lineprops">
+    <!--<linestyle> <linecolor> \dplinewN-->
+    <!--<linestyle> <linecolor> \dplinewN-->
+    <!--<linestyle><linecolor>\dplinewN-->
+    <ref name="linestyle"/>
+    <ref name="linecolor"/>
+    <value name="dplinew"/>
+  </define>
+  <define name="linestyle">
+    <!--\dplinesolid | \dplinehollow | \dplinedash | \dplinedot | \dplinedado | \dplinedadodo-->
+    <!--\dplinesolid | \dplinehollow | \dplinedash | \dplinedot | \dplinedado | \dplinedadodo-->
+    <!--\dplinesolid|\dplinehollow|\dplinedash|\dplinedot|\dplinedado|\dplinedadodo-->
+    <choice>
+      <flag name="dplinesolid"/>
+      <flag name="dplinehollow"/>
+      <flag name="dplinedash"/>
+      <flag name="dplinedot"/>
+      <flag name="dplinedado"/>
+      <flag name="dplinedadodo"/>
+    </choice>
+  </define>
+  <define name="linecolor">
+    <!--<linegray> | <linergb>-->
+    <!--<linegray> | <linergb>-->
+    <!--<linegray>|<linergb>-->
+    <choice>
+      <ref name="linegray"/>
+      <ref name="linergb"/>
+    </choice>
+  </define>
+  <define name="linegray">
+    <!--\dplinegrayN-->
+    <!--\dplinegrayN-->
+    <!--\dplinegrayN-->
+    <value name="dplinegray"/>
+  </define>
+  <define name="linergb">
+    <!--\dplinecorN \dplinecogN \dplinecobN<linepal>?-->
+    <!--\dplinecorN \dplinecogN \dplinecobN<linepal>?-->
+    <!--\dplinecorN\dplinecogN\dplinecobN(<linepal>?)-->
+    <value name="dplinecor"/>
+    <value name="dplinecog"/>
+    <value name="dplinecob"/>
+    <optional>
+      <ref name="linepal"/>
+    </optional>
+  </define>
+  <define name="linepal">
+    <!--\dplinepal-->
+    <!--\dplinepal-->
+    <!--\dplinepal-->
+    <flag name="dplinepal"/>
+  </define>
+  <define name="fillprops">
+    <!--<fillcolorfg> <fillcolorbg> \dpfillpatN-->
+    <!--<fillcolorfg> <fillcolorbg> \dpfillpatN-->
+    <!--<fillcolorfg><fillcolorbg>\dpfillpatN-->
+    <ref name="fillcolorfg"/>
+    <ref name="fillcolorbg"/>
+    <value name="dpfillpat"/>
+  </define>
+  <define name="fillcolorfg">
+    <!--<fillfggray> | <fillfgrgb>-->
+    <!--<fillfggray> | <fillfgrgb>-->
+    <!--<fillfggray>|<fillfgrgb>-->
+    <choice>
+      <ref name="fillfggray"/>
+      <ref name="fillfgrgb"/>
+    </choice>
+  </define>
+  <define name="fillfggray">
+    <!--\dpfillfggrayN-->
+    <!--\dpfillfggrayN-->
+    <!--\dpfillfggrayN-->
+    <value name="dpfillfggray"/>
+  </define>
+  <define name="fillfgrgb">
+    <!--\dpfillfgcrN \dpfillfgcgN \dpfillfgcbN<fillfgpal>?-->
+    <!--\dpfillfgcrN \dpfillfgcgN \dpfillfgcbN<fillfgpal>?-->
+    <!--\dpfillfgcrN\dpfillfgcgN\dpfillfgcbN(<fillfgpal>?)-->
+    <value name="dpfillfgcr"/>
+    <value name="dpfillfgcg"/>
+    <value name="dpfillfgcb"/>
+    <optional>
+      <ref name="fillfgpal"/>
+    </optional>
+  </define>
+  <define name="fillfgpal">
+    <!--\dpfillfgpal-->
+    <!--\dpfillfgpal-->
+    <!--\dpfillfgpal-->
+    <flag name="dpfillfgpal"/>
+  </define>
+  <define name="fillcolorbg">
+    <!--<fillbggray> | <fillbgrgb>-->
+    <!--<fillbggray> | <fillbgrgb>-->
+    <!--<fillbggray>|<fillbgrgb>-->
+    <choice>
+      <ref name="fillbggray"/>
+      <ref name="fillbgrgb"/>
+    </choice>
+  </define>
+  <define name="fillbggray">
+    <!--\dpfillbggray-->
+    <!--\dpfillbggray-->
+    <!--\dpfillbggray-->
+    <value name="dpfillbggray"/>
+  </define>
+  <define name="fillbgrgb">
+    <!--\dpfillbgcr \dpfillbgcg \dpfillbgcb<fillbgpal>?-->
+    <!--\dpfillbgcr \dpfillbgcg \dpfillbgcb<fillbgpal>?-->
+    <!--\dpfillbgcr\dpfillbgcg\dpfillbgcb(<fillbgpal>?)-->
+    <value name="dpfillbgcr"/>
+    <value name="dpfillbgcg"/>
+    <value name="dpfillbgcb"/>
+    <optional>
+      <ref name="fillbgpal"/>
+    </optional>
+  </define>
+  <define name="fillbgpal">
+    <!--\dpfillbgpal-->
+    <!--\dpfillbgpal-->
+    <!--\dpfillbgpal-->
+    <flag name="dpfillbgpal"/>
+  </define>
+  <define name="endstylestart">
+    <!--<arrowstartfill> \dpastartlN \dpastartwN-->
+    <!--<arrowstartfill> \dpastartlN \dpastartwN-->
+    <!--<arrowstartfill>\dpastartlN\dpastartwN-->
+    <ref name="arrowstartfill"/>
+    <value name="dpastartl"/>
+    <value name="dpastartw"/>
+  </define>
+  <define name="arrowstartfill">
+    <!--\dpastartsol | \dpastarthol-->
+    <!--\dpastartsol | \dpastarthol-->
+    <!--\dpastartsol|\dpastarthol-->
+    <choice>
+      <flag name="dpastartsol"/>
+      <flag name="dpastarthol"/>
+    </choice>
+  </define>
+  <define name="endstyleend">
+    <!--<arrowendfill> \dpaendlN \dpaendwN-->
+    <!--<arrowendfill> \dpaendlN \dpaendwN-->
+    <!--<arrowendfill>\dpaendlN\dpaendwN-->
+    <ref name="arrowendfill"/>
+    <value name="dpaendl"/>
+    <value name="dpaendw"/>
+  </define>
+  <define name="arrowendfill">
+    <!--\dpaendsol | \dpaendhol-->
+    <!--\dpaendsol | \dpaendhol-->
+    <!--\dpaendsol|\dpaendhol-->
+    <choice>
+      <flag name="dpaendsol"/>
+      <flag name="dpaendhol"/>
+    </choice>
+  </define>
+  <define name="shadow">
+    <!--\dpshadow \dpshadxN \dpshadyN-->
+    <!--\dpshadow \dpshadxN \dpshadyN-->
+    <!--\dpshadow\dpshadxN\dpshadyN-->
+    <flag name="dpshadow"/>
+    <value name="dpshadx"/>
+    <value name="dpshady"/>
+  </define>
+  <define name="shape">
+    <!--'{' \shp <shpinfo> <shpinst> <shprslt> '}'-->
+    <!--'{' \shp <shpinfo> <shpinst> <shprslt> '}'-->
+    <!--'{'\shp<shpinfo><shpinst><shprslt>'}'-->
+    <literal>{</literal>
+    <destination name="shp"/>
+    <ref name="shpinfo"/>
+    <ref name="shpinst"/>
+    <ref name="shprslt"/>
+    <literal>}</literal>
+  </define>
+  <define name="shpinfo">
+    <!--\shpleftN? \shptopN? \shpbottomN? \shprightN? \shplidN? \shpzN? \shpfhdrN? \shpbxpage ? \shpbxmargin ? \shpbxcolumn? \shpbxignore? \shpbypage ? \shpbymargin ? \shpbypara? \shpbyignore? \shpwrN? \shpwrkN? \shpfblwtxtN? \shplockanchor? \shptxt?-->
+    <!--\shpleftN? \shptopN? \shpbottomN? \shprightN? \shplidN? \shpzN? \shpfhdrN? \shpbxpage ? \shpbxmargin ? \shpbxcolumn? \shpbxignore? \shpbypage ? \shpbymargin ? \shpbypara? \shpbyignore? \shpwrN? \shpwrkN? \shpfblwtxtN? \shplockanchor? \shptxt?-->
+    <!--(\shpleftN?)(\shptopN?)(\shpbottomN?)(\shprightN?)(\shplidN?)(\shpzN?)(\shpfhdrN?)(\shpbxpage?)(\shpbxmargin?)(\shpbxcolumn?)(\shpbxignore?)(\shpbypage?)(\shpbymargin?)(\shpbypara?)(\shpbyignore?)(\shpwrN?)(\shpwrkN?)(\shpfblwtxtN?)(\shplockanchor?)(\shptxt?)-->
+    <optional>
+      <value name="shpleft"/>
+    </optional>
+    <optional>
+      <value name="shptop"/>
+    </optional>
+    <optional>
+      <value name="shpbottom"/>
+    </optional>
+    <optional>
+      <value name="shpright"/>
+    </optional>
+    <optional>
+      <value name="shplid"/>
+    </optional>
+    <optional>
+      <value name="shpz"/>
+    </optional>
+    <optional>
+      <value name="shpfhdr"/>
+    </optional>
+    <optional>
+      <flag name="shpbxpage"/>
+    </optional>
+    <optional>
+      <flag name="shpbxmargin"/>
+    </optional>
+    <optional>
+      <flag name="shpbxcolumn"/>
+    </optional>
+    <optional>
+      <flag name="shpbxignore"/>
+    </optional>
+    <optional>
+      <flag name="shpbypage"/>
+    </optional>
+    <optional>
+      <flag name="shpbymargin"/>
+    </optional>
+    <optional>
+      <flag name="shpbypara"/>
+    </optional>
+    <optional>
+      <flag name="shpbyignore"/>
+    </optional>
+    <optional>
+      <value name="shpwr"/>
+    </optional>
+    <optional>
+      <value name="shpwrk"/>
+    </optional>
+    <optional>
+      <value name="shpfblwtxt"/>
+    </optional>
+    <optional>
+      <flag name="shplockanchor"/>
+    </optional>
+    <optional>
+      <destination name="shptxt"/>
+    </optional>
+  </define>
+  <define name="shpinst">
+    <!--'{\*' \shpinst <sp>+ '}'-->
+    <!--'{' \*\shpinst <sp>+ '}'-->
+    <!--'{'\*\shpinst(<sp>+)'}'-->
+    <literal>{</literal>
+    <destination name="shpinst"/>
+    <one-or-more>
+      <ref name="sp"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="sp">
+    <!--'{' \sp <sn> <sv> <hsv>? '}'-->
+    <!--'{' \sp <sn> <sv> <hsv>? '}'-->
+    <!--'{'\sp<sn><sv>(<hsv>?)'}'-->
+    <literal>{</literal>
+    <destination name="sp"/>
+    <ref name="sn"/>
+    <ref name="sv"/>
+    <optional>
+      <ref name="hsv"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="sn">
+    <!--'{' \sn ... '}'-->
+    <!--'{' \sn ... '}'-->
+    <!--'{'\sn... '}'-->
+    <literal>{</literal>
+    <destination name="sn"/>
+    <token>... '}'</token>
+  </define>
+  <define name="sv">
+    <!--'{' \sv ... '}'-->
+    <!--'{' \sv ... '}'-->
+    <!--'{'\sv... '}'-->
+    <literal>{</literal>
+    <destination name="sv"/>
+    <token>... '}'</token>
+  </define>
+  <define name="shprslt">
+    <!--'{\*' \shprslt ... '}'-->
+    <!--'{' \*\shprslt ... '}'-->
+    <!--'{'\*\shprslt... '}'-->
+    <literal>{</literal>
+    <destination name="shprslt"/>
+    <token>... '}'</token>
+  </define>
+  <define name="hsv">
+    <!--'{\*' \hsv <accent> & \ctintN & \cshadeN '}'-->
+    <!--'{' \*\hsv <accent> & \ctintN & \cshadeN '}'-->
+    <!--'{'\*\hsv<accent>&\ctintN&\cshadeN'}'-->
+    <literal>{</literal>
+    <destination name="hsv"/>
+    <any>
+      <ref name="accent"/>
+      <value name="ctint"/>
+      <value name="cshade"/>
+    </any>
+    <literal>}</literal>
+  </define>
+  <define name="accent">
+    <!--\caccentone | \caccenttwo | \caccentthree | \caccentfour | \caccentfive | \caccentsix-->
+    <!--\caccentone | \caccenttwo | \caccentthree | \caccentfour | \caccentfive | \caccentsix-->
+    <!--\caccentone|\caccenttwo|\caccentthree|\caccentfour|\caccentfive|\caccentsix-->
+    <choice>
+      <flag name="caccentone"/>
+      <flag name="caccenttwo"/>
+      <flag name="caccentthree"/>
+      <flag name="caccentfour"/>
+      <flag name="caccentfive"/>
+      <flag name="caccentsix"/>
+    </choice>
+  </define>
+  <define name="footnote">
+    <!--'{' \footnote \ftnalt? <para>+ '}'-->
+    <!--'{' \footnote \ftnalt? <para>+ '}'-->
+    <!--'{'\footnote(\ftnalt?)(<para>+)'}'-->
+    <literal>{</literal>
+    <destination name="footnote"/>
+    <optional>
+      <flag name="ftnalt"/>
+    </optional>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="atrfstart">
+    <!--'{\*' \atrfstart N '}'-->
+    <!--'{' \*\atrfstart N '}'-->
+    <!--'{'\*\atrfstartN'}'-->
+    <literal>{</literal>
+    <destination name="atrfstart"/>
+    <literal>}</literal>
+  </define>
+  <define name="atrfend">
+    <!--'{\*' \atrfend N '}'-->
+    <!--'{' \*\atrfend N '}'-->
+    <!--'{'\*\atrfendN'}'-->
+    <literal>{</literal>
+    <destination name="atrfend"/>
+    <literal>}</literal>
+  </define>
+  <define name="annot">
+    <!--<annotid> <atnauthor> <atntime>? \chatn <atnicn>? <annotdef> -->
+    <!--<annotid> <atnauthor> <atntime>? \chatn <atnicn>? <annotdef> -->
+    <!--<annotid><atnauthor>(<atntime>?)\chatn(<atnicn>?)<annotdef> -->
+    <ref name="annotid"/>
+    <ref name="atnauthor"/>
+    <optional>
+      <ref name="atntime"/>
+    </optional>
+    <symbol name="chatn"/>
+    <optional>
+      <ref name="atnicn"/>
+    </optional>
+    <ref name="annotdef"/>
+    <notoken> </notoken>
+  </define>
+  <define name="annotid">
+    <!--'{\*' \atnid #PCDATA '}'-->
+    <!--'{' \*\atnid #PCDATA '}'-->
+    <!--'{'\*\atnid#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="atnid"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="atnauthor">
+    <!--'{\*' \atnauthor #PCDATA '}'-->
+    <!--'{' \*\atnauthor #PCDATA '}'-->
+    <!--'{'\*\atnauthor#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="atnauthor"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="annotdef">
+    <!--'{\*' \annotation <atndate>? <atnref> <atnparent> <para>+ '}'-->
+    <!--'{' \*\annotation <atndate>? <atnref> <atnparent> <para>+ '}'-->
+    <!--'{'\*\annotation(<atndate>?)<atnref><atnparent>(<para>+)'}'-->
+    <literal>{</literal>
+    <destination name="annotation"/>
+    <optional>
+      <ref name="atndate"/>
+    </optional>
+    <ref name="atnref"/>
+    <ref name="atnparent"/>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="atnref">
+    <!--'{\*' \atnrefN '}'-->
+    <!--'{' \*\atnrefN '}'-->
+    <!--'{'\*\atnrefN'}'-->
+    <literal>{</literal>
+    <destination name="atnref"/>
+    <literal>}</literal>
+  </define>
+  <define name="atntime">
+    <!--'{\*' \atntime <time> '}'-->
+    <!--'{' \*\atntime <time> '}'-->
+    <!--'{'\*\atntime<time>'}'-->
+    <literal>{</literal>
+    <destination name="atntime"/>
+    <ref name="time"/>
+    <literal>}</literal>
+  </define>
+  <define name="atndate">
+    <!--'{\*' \atndate <date> '}'-->
+    <!--'{' \*\atndate <date> '}'-->
+    <!--'{'\*\atndate<date>'}'-->
+    <literal>{</literal>
+    <destination name="atndate"/>
+    <ref name="date"/>
+    <literal>}</literal>
+  </define>
+  <define name="atnparent">
+    <!--'{\*' \atnparent <annotid of parent> '}'-->
+    <!--'{' \*\atnparent <annotid of parent> '}'-->
+    <!--'{'\*\atnparent<annotid of parent>'}'-->
+    <literal>{</literal>
+    <destination name="atnparent"/>
+    <ref name="annotid of parent"/>
+    <literal>}</literal>
+  </define>
+  <define name="atnicn">
+    <!--'{\*' \atnicn <pict> '}'-->
+    <!--'{' \*\atnicn <pict> '}'-->
+    <!--'{'\*\atnicn<pict>'}'-->
+    <literal>{</literal>
+    <destination name="atnicn"/>
+    <ref name="pict"/>
+    <literal>}</literal>
+  </define>
+  <define name="field">
+    <!--'{' \field <fieldmod>? <fieldinst> <fieldrslt> '}'-->
+    <!--'{' \field <fieldmod>? <fieldinst> <fieldrslt> '}'-->
+    <!--'{'\field(<fieldmod>?)<fieldinst><fieldrslt>'}'-->
+    <literal>{</literal>
+    <destination name="field"/>
+    <optional>
+      <ref name="fieldmod"/>
+    </optional>
+    <ref name="fieldinst"/>
+    <ref name="fieldrslt"/>
+    <literal>}</literal>
+  </define>
+  <define name="fieldmod">
+    <!--\flddirty? & \fldedit? & \fldlock? & \fldpriv?-->
+    <!--\flddirty? & \fldedit? & \fldlock? & \fldpriv?-->
+    <!--(\flddirty?)&(\fldedit?)&(\fldlock?)&(\fldpriv?)-->
+    <any>
+      <optional>
+        <flag name="flddirty"/>
+      </optional>
+      <optional>
+        <flag name="fldedit"/>
+      </optional>
+      <optional>
+        <flag name="fldlock"/>
+      </optional>
+      <optional>
+        <flag name="fldpriv"/>
+      </optional>
+    </any>
+  </define>
+  <define name="fieldinst">
+    <!--'{\*' \fldinst <fieldtype><para>+ \fldalt? <datafield>? <formfield>? '}'-->
+    <!--'{' \*\fldinst <fieldtype><para>+ \fldalt? <datafield>? <formfield>? '}'-->
+    <!--'{'\*\fldinst<fieldtype>(<para>+)(\fldalt?)(<datafield>?)(<formfield>?)'}'-->
+    <literal>{</literal>
+    <destination name="fldinst"/>
+    <ref name="fieldtype"/>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <optional>
+      <flag name="fldalt"/>
+    </optional>
+    <optional>
+      <ref name="datafield"/>
+    </optional>
+    <optional>
+      <ref name="formfield"/>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="fieldrslt">
+    <!--'{' \fldrslt <para>+ '}'-->
+    <!--'{' \fldrslt <para>+ '}'-->
+    <!--'{'\fldrslt(<para>+)'}'-->
+    <literal>{</literal>
+    <destination name="fldrslt"/>
+    <one-or-more>
+      <ref name="para"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="datafield">
+    <!--'{' \*\datafield #SDATA '}'-->
+    <!--'{' \*\datafield #SDATA '}'-->
+    <!--'{'\*\datafield#SDATA'}'-->
+    <literal>{</literal>
+    <destination name="datafield"/>
+    <sdata/>
+    <literal>}</literal>
+  </define>
+  <define name="fieldtype">
+    <!--<datetime> | <docauto> | <docinfo> | <form> | <formulas> | <indextables> | <links> | <mailmerge> | <numbering> | <userinfo>-->
+    <!--<datetime> | <docauto> | <docinfo> | <form> | <formulas> | <indextables> | <links> | <mailmerge> | <numbering> | <userinfo>-->
+    <!--<datetime>|<docauto>|<docinfo>|<form>|<formulas>|<indextables>|<links>|<mailmerge>|<numbering>|<userinfo>-->
+    <choice>
+      <ref name="datetime"/>
+      <ref name="docauto"/>
+      <ref name="docinfo"/>
+      <ref name="form"/>
+      <ref name="formulas"/>
+      <ref name="indextables"/>
+      <ref name="links"/>
+      <ref name="mailmerge"/>
+      <ref name="numbering"/>
+      <ref name="userinfo"/>
+    </choice>
+  </define>
+  <define name="datetime">
+    <!--'CREATEDATE' | 'DATE' | 'EDITTIME' | 'PRINTDATE' | 'SAVEDATE' | 'TIME'-->
+    <!--'CREATEDATE' | 'DATE' | 'EDITTIME' | 'PRINTDATE' | 'SAVEDATE' | 'TIME'-->
+    <!--'CREATEDATE'|'DATE'|'EDITTIME'|'PRINTDATE'|'SAVEDATE'|'TIME'-->
+    <choice>
+      <literal>CREATEDATE</literal>
+      <literal>DATE</literal>
+      <literal>EDITTIME</literal>
+      <literal>PRINTDATE</literal>
+      <literal>SAVEDATE</literal>
+      <literal>TIME</literal>
+    </choice>
+  </define>
+  <define name="docauto">
+    <!--'COMPARE' | 'DOCVARIABLE' | 'GOTOBUTTON' | 'IF' | 'MACROBUTTON' | 'PRINT'-->
+    <!--'COMPARE' | 'DOCVARIABLE' | 'GOTOBUTTON' | 'IF' | 'MACROBUTTON' | 'PRINT'-->
+    <!--'COMPARE'|'DOCVARIABLE'|'GOTOBUTTON'|'IF'|'MACROBUTTON'|'PRINT'-->
+    <choice>
+      <literal>COMPARE</literal>
+      <literal>DOCVARIABLE</literal>
+      <literal>GOTOBUTTON</literal>
+      <literal>IF</literal>
+      <literal>MACROBUTTON</literal>
+      <literal>PRINT</literal>
+    </choice>
+  </define>
+  <define name="docinfo">
+    <!--'AUTHOR' | 'COMMENTS' | 'DOCPROPERTY' | 'FILENAME' | 'FILESIZE' | 'INFO' | 'KEYWORDS' | 'LASTSAVEDBY' | 'NUMCHARS' | 'NUMPAGES' | 'NUMWORDS' | 'SUBJECT' | 'TEMPLATE' | 'TITLE'-->
+    <!--'AUTHOR' | 'COMMENTS' | 'DOCPROPERTY' | 'FILENAME' | 'FILESIZE' | 'INFO' | 'KEYWORDS' | 'LASTSAVEDBY' | 'NUMCHARS' | 'NUMPAGES' | 'NUMWORDS' | 'SUBJECT' | 'TEMPLATE' | 'TITLE'-->
+    <!--'AUTHOR'|'COMMENTS'|'DOCPROPERTY'|'FILENAME'|'FILESIZE'|'INFO'|'KEYWORDS'|'LASTSAVEDBY'|'NUMCHARS'|'NUMPAGES'|'NUMWORDS'|'SUBJECT'|'TEMPLATE'|'TITLE'-->
+    <choice>
+      <literal>AUTHOR</literal>
+      <literal>COMMENTS</literal>
+      <literal>DOCPROPERTY</literal>
+      <literal>FILENAME</literal>
+      <literal>FILESIZE</literal>
+      <literal>INFO</literal>
+      <literal>KEYWORDS</literal>
+      <literal>LASTSAVEDBY</literal>
+      <literal>NUMCHARS</literal>
+      <literal>NUMPAGES</literal>
+      <literal>NUMWORDS</literal>
+      <literal>SUBJECT</literal>
+      <literal>TEMPLATE</literal>
+      <literal>TITLE</literal>
+    </choice>
+  </define>
+  <define name="form">
+    <!--'FORMTEXT' | 'FORMCHECKBOX' | 'FORMDROPDOWN'-->
+    <!--'FORMTEXT' | 'FORMCHECKBOX' | 'FORMDROPDOWN'-->
+    <!--'FORMTEXT'|'FORMCHECKBOX'|'FORMDROPDOWN'-->
+    <choice>
+      <literal>FORMTEXT</literal>
+      <literal>FORMCHECKBOX</literal>
+      <literal>FORMDROPDOWN</literal>
+    </choice>
+  </define>
+  <define name="formulas">
+    <!--('=' <formula>) | 'ADVANCE' | 'EQ' | 'SYMBOL'-->
+    <!--('=' <formula>) | 'ADVANCE' | 'EQ' | 'SYMBOL'-->
+    <!--('='<formula>)|'ADVANCE'|'EQ'|'SYMBOL'-->
+    <choice>
+      <literal>=</literal>
+      <ref name="formula"/>
+      <literal>ADVANCE</literal>
+      <literal>EQ</literal>
+      <literal>SYMBOL</literal>
+    </choice>
+  </define>
+  <define name="indextables">
+    <!--'INDEX' | 'RD' | 'TA' | 'TC' | 'TOA' | 'TOC' | 'XE'-->
+    <!--'INDEX' | 'RD' | 'TA' | 'TC' | 'TOA' | 'TOC' | 'XE'-->
+    <!--'INDEX'|'RD'|'TA'|'TC'|'TOA'|'TOC'|'XE'-->
+    <choice>
+      <literal>INDEX</literal>
+      <literal>RD</literal>
+      <literal>TA</literal>
+      <literal>TC</literal>
+      <literal>TOA</literal>
+      <literal>TOC</literal>
+      <literal>XE</literal>
+    </choice>
+  </define>
+  <define name="links">
+    <!--'AUTOTEXT' | 'AUTOTEXTLIST' | 'HYPERLINK' | 'INCLUDEPICTURE' | 'INCLUDETEXT' | 'LINK' | 'NOTEREF' | 'PAGEREF' | 'QUOTE' | 'REF' | 'STYLEREF'-->
+    <!--'AUTOTEXT' | 'AUTOTEXTLIST' | 'HYPERLINK' | 'INCLUDEPICTURE' | 'INCLUDETEXT' | 'LINK' | 'NOTEREF' | 'PAGEREF' | 'QUOTE' | 'REF' | 'STYLEREF'-->
+    <!--'AUTOTEXT'|'AUTOTEXTLIST'|'HYPERLINK'|'INCLUDEPICTURE'|'INCLUDETEXT'|'LINK'|'NOTEREF'|'PAGEREF'|'QUOTE'|'REF'|'STYLEREF'-->
+    <choice>
+      <literal>AUTOTEXT</literal>
+      <literal>AUTOTEXTLIST</literal>
+      <literal>HYPERLINK</literal>
+      <literal>INCLUDEPICTURE</literal>
+      <literal>INCLUDETEXT</literal>
+      <literal>LINK</literal>
+      <literal>NOTEREF</literal>
+      <literal>PAGEREF</literal>
+      <literal>QUOTE</literal>
+      <literal>REF</literal>
+      <literal>STYLEREF</literal>
+    </choice>
+  </define>
+  <define name="mailmerge">
+    <!--'ADDRESSBLOCK' | 'ASK' | 'COMPARE' | 'DATABASE' | 'FILLIN' | 'GREETINGLINE' | 'IF' | 'MERGEFIELD' | 'MERGEREC' | 'MERGESEQ' | 'NEXT' | 'NEXTIF' | 'SET' | 'SKIPIF'-->
+    <!--'ADDRESSBLOCK' | 'ASK' | 'COMPARE' | 'DATABASE' | 'FILLIN' | 'GREETINGLINE' | 'IF' | 'MERGEFIELD' | 'MERGEREC' | 'MERGESEQ' | 'NEXT' | 'NEXTIF' | 'SET' | 'SKIPIF'-->
+    <!--'ADDRESSBLOCK'|'ASK'|'COMPARE'|'DATABASE'|'FILLIN'|'GREETINGLINE'|'IF'|'MERGEFIELD'|'MERGEREC'|'MERGESEQ'|'NEXT'|'NEXTIF'|'SET'|'SKIPIF'-->
+    <choice>
+      <literal>ADDRESSBLOCK</literal>
+      <literal>ASK</literal>
+      <literal>COMPARE</literal>
+      <literal>DATABASE</literal>
+      <literal>FILLIN</literal>
+      <literal>GREETINGLINE</literal>
+      <literal>IF</literal>
+      <literal>MERGEFIELD</literal>
+      <literal>MERGEREC</literal>
+      <literal>MERGESEQ</literal>
+      <literal>NEXT</literal>
+      <literal>NEXTIF</literal>
+      <literal>SET</literal>
+      <literal>SKIPIF</literal>
+    </choice>
+  </define>
+  <define name="numbering">
+    <!--'AUTONUM' | 'AUTONUMLGL' | 'AUTONUMOUT' | 'BARCODE' | 'LISTNUM' | 'PAGE' | 'REVNUM' | 'SECTION' | 'SECTIONPAGES' | 'SEQ'-->
+    <!--'AUTONUM' | 'AUTONUMLGL' | 'AUTONUMOUT' | 'BARCODE' | 'LISTNUM' | 'PAGE' | 'REVNUM' | 'SECTION' | 'SECTIONPAGES' | 'SEQ'-->
+    <!--'AUTONUM'|'AUTONUMLGL'|'AUTONUMOUT'|'BARCODE'|'LISTNUM'|'PAGE'|'REVNUM'|'SECTION'|'SECTIONPAGES'|'SEQ'-->
+    <choice>
+      <literal>AUTONUM</literal>
+      <literal>AUTONUMLGL</literal>
+      <literal>AUTONUMOUT</literal>
+      <literal>BARCODE</literal>
+      <literal>LISTNUM</literal>
+      <literal>PAGE</literal>
+      <literal>REVNUM</literal>
+      <literal>SECTION</literal>
+      <literal>SECTIONPAGES</literal>
+      <literal>SEQ</literal>
+    </choice>
+  </define>
+  <define name="userinfo">
+    <!--'USERADDRESS' | 'USERINITIALS' | 'USERNAME'-->
+    <!--'USERADDRESS' | 'USERINITIALS' | 'USERNAME'-->
+    <!--'USERADDRESS'|'USERINITIALS'|'USERNAME'-->
+    <choice>
+      <literal>USERADDRESS</literal>
+      <literal>USERINITIALS</literal>
+      <literal>USERNAME</literal>
+    </choice>
+  </define>
+  <define name="formula">
+    <!--See Office Open XML, Section 2.15.3.-->
+    <!--See Office Open XML, Section 2.15.3.-->
+    <!--See Office Open XML, Section 2.15.3.-->
+    <token>See Office Open XML, Section 2.15.3.</token>
+  </define>
+  <define name="formfield">
+    <!--'{\*' \formfield '{' <formparams> <formstrings> '}}'-->
+    <!--'{' \*\formfield '{' <formparams> <formstrings> '}}'-->
+    <!--'{'\*\formfield'{'<formparams><formstrings>'}}'-->
+    <literal>{</literal>
+    <destination name="formfield"/>
+    <literal>{</literal>
+    <ref name="formparams"/>
+    <ref name="formstrings"/>
+    <literal>}}</literal>
+  </define>
+  <define name="formparams">
+    <!--\fftypeN? \ffownhelpN? \ffownstatN? \ffprotN? \ffsizeN? \fftypetxtN? \ffrecalcN? \ffhaslistboxN? \ffhaslistboxN? \ffmaxlenN? \ffhpsN? \ffdefresN? \ffresN? -->
+    <!--\fftypeN? \ffownhelpN? \ffownstatN? \ffprotN? \ffsizeN? \fftypetxtN? \ffrecalcN? \ffhaslistboxN? \ffhaslistboxN? \ffmaxlenN? \ffhpsN? \ffdefresN? \ffresN? -->
+    <!--(\fftypeN?)(\ffownhelpN?)(\ffownstatN?)(\ffprotN?)(\ffsizeN?)(\fftypetxtN?)(\ffrecalcN?)(\ffhaslistboxN?)(\ffhaslistboxN?)(\ffmaxlenN?)(\ffhpsN?)(\ffdefresN?)(\ffresN?) -->
+    <optional>
+      <value name="fftype"/>
+    </optional>
+    <optional>
+      <value name="ffownhelp"/>
+    </optional>
+    <optional>
+      <value name="ffownstat"/>
+    </optional>
+    <optional>
+      <value name="ffprot"/>
+    </optional>
+    <optional>
+      <value name="ffsize"/>
+    </optional>
+    <optional>
+      <value name="fftypetxt"/>
+    </optional>
+    <optional>
+      <value name="ffrecalc"/>
+    </optional>
+    <optional>
+      <value name="ffhaslistbox"/>
+    </optional>
+    <optional>
+      <value name="ffhaslistbox"/>
+    </optional>
+    <optional>
+      <value name="ffmaxlen"/>
+    </optional>
+    <optional>
+      <value name="ffhps"/>
+    </optional>
+    <optional>
+      <value name="ffdefres"/>
+    </optional>
+    <optional>
+      <value name="ffres"/>
+    </optional>
+    <notoken> </notoken>
+  </define>
+  <define name="formstrings">
+    <!--<ffname>? <ffdeftext>? <ffformat>? <ffhelptext>? <ffstattext>? <ffentrymcr>? <ffexitmcr>? <ffl>*-->
+    <!--<ffname>? <ffdeftext>? <ffformat>? <ffhelptext>? <ffstattext>? <ffentrymcr>? <ffexitmcr>? <ffl>*-->
+    <!--(<ffname>?)(<ffdeftext>?)(<ffformat>?)(<ffhelptext>?)(<ffstattext>?)(<ffentrymcr>?)(<ffexitmcr>?)(<ffl>*)-->
+    <optional>
+      <ref name="ffname"/>
+    </optional>
+    <optional>
+      <ref name="ffdeftext"/>
+    </optional>
+    <optional>
+      <ref name="ffformat"/>
+    </optional>
+    <optional>
+      <ref name="ffhelptext"/>
+    </optional>
+    <optional>
+      <ref name="ffstattext"/>
+    </optional>
+    <optional>
+      <ref name="ffentrymcr"/>
+    </optional>
+    <optional>
+      <ref name="ffexitmcr"/>
+    </optional>
+    <zero-or-more>
+      <ref name="ffl"/>
+    </zero-or-more>
+  </define>
+  <define name="ffl">
+    <!--'{\*' \ffl #PCDATA '}'-->
+    <!--'{' \*\ffl #PCDATA '}'-->
+    <!--'{'\*\ffl#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffl"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="ffname">
+    <!--'{' \ffname #PCDATA '}'-->
+    <!--'{' \ffname #PCDATA '}'-->
+    <!--'{'\ffname#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffname"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="ffdeftext">
+    <!--'{' \ffdeftext #PCDATA '}'-->
+    <!--'{' \ffdeftext #PCDATA '}'-->
+    <!--'{'\ffdeftext#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffdeftext"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="ffformat">
+    <!--'{' \ffformat #PCDATA '}'-->
+    <!--'{' \ffformat #PCDATA '}'-->
+    <!--'{'\ffformat#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffformat"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="ffhelptext">
+    <!--'{' \ffhelptext #PCDATA '}'-->
+    <!--'{' \ffhelptext #PCDATA '}'-->
+    <!--'{'\ffhelptext#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffhelptext"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="ffstattext">
+    <!--'{' \ffstattext #PCDATA '}'-->
+    <!--'{' \ffstattext #PCDATA '}'-->
+    <!--'{'\ffstattext#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffstattext"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="ffentrymcr">
+    <!--'{' \ffentrymcr #PCDATA '}'-->
+    <!--'{' \ffentrymcr #PCDATA '}'-->
+    <!--'{'\ffentrymcr#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffentrymcr"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="ffexitmcr">
+    <!--'{' \ffexitmcr #PCDATA '}'-->
+    <!--'{' \ffexitmcr #PCDATA '}'-->
+    <!--'{'\ffexitmcr#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="ffexitmcr"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="idx">
+    <!--'{' \xe (\xefN? & \bxe? & \ixe?) <entry> (<txe> | <rxe>)? '}'-->
+    <!--'{' \xe (\xefN? & \bxe? & \ixe?) <entry> (<txe> | <rxe>)? '}'-->
+    <!--'{'\xe((\xefN?)&(\bxe?)&(\ixe?))<entry>((<txe>|<rxe>)?)'}'-->
+    <literal>{</literal>
+    <destination name="xe"/>
+    <any>
+      <optional>
+        <value name="xef"/>
+      </optional>
+      <optional>
+        <flag name="bxe"/>
+      </optional>
+      <optional>
+        <flag name="ixe"/>
+      </optional>
+    </any>
+    <ref name="entry"/>
+    <optional>
+      <choice>
+        <ref name="txe"/>
+        <ref name="rxe"/>
+      </choice>
+    </optional>
+    <literal>}</literal>
+  </define>
+  <define name="entry">
+    <!--(<char>+ <yxe>?) | ('{' <char>+ <yxe>? '}')-->
+    <!--(<char>+ <yxe>?) | ('{' <char>+ <yxe>? '}')-->
+    <!--((<char>+)(<yxe>?))|('{'(<char>+)(<yxe>?)'}')-->
+    <choice>
+      <one-or-more>
+        <ref name="char"/>
+      </one-or-more>
+      <optional>
+        <ref name="yxe"/>
+      </optional>
+      <literal>{</literal>
+      <one-or-more>
+        <ref name="char"/>
+      </one-or-more>
+      <optional>
+        <ref name="yxe"/>
+      </optional>
+      <literal>}</literal>
+    </choice>
+  </define>
+  <define name="yxe">
+    <!--\yxe <char>+ #PCDATA-->
+    <!--\yxe <char>+ #PCDATA-->
+    <!--\yxe(<char>+)#PCDATA-->
+    <flag name="yxe"/>
+    <one-or-more>
+      <ref name="char"/>
+    </one-or-more>
+    <pcdata/>
+  </define>
+  <define name="txe">
+    <!--'{' \txe <char>+ #PCDATA '}'-->
+    <!--'{' \txe <char>+ #PCDATA '}'-->
+    <!--'{'\txe(<char>+)#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="txe"/>
+    <one-or-more>
+      <ref name="char"/>
+    </one-or-more>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="rxe">
+    <!--'{' \rxe #PCDATA '}'-->
+    <!--'{' \rxe #PCDATA '}'-->
+    <!--'{'\rxe#PCDATA'}'-->
+    <literal>{</literal>
+    <destination name="rxe"/>
+    <pcdata/>
+    <literal>}</literal>
+  </define>
+  <define name="pxe">
+    <!--'\*' \pxe <char>+ #PCDATA-->
+    <!--'\*' \pxe <char>+ #PCDATA-->
+    <!--'\*'\pxe(<char>+)#PCDATA-->
+    <literal>\*</literal>
+    <destination name="pxe"/>
+    <one-or-more>
+      <ref name="char"/>
+    </one-or-more>
+    <pcdata/>
+  </define>
+  <define name="toc">
+    <!--'{' \tc | \tcn (\tcfN? & \tclN?) <char>+ '}'-->
+    <!--'{' \tc | \tcn (\tcfN? & \tclN?) <char>+ '}'-->
+    <!--'{'\tc|\tcn((\tcfN?)&(\tclN?))(<char>+)'}'-->
+    <literal>{</literal>
+    <choice>
+      <destination name="tc"/>
+      <flag name="tcn"/>
+    </choice>
+    <any>
+      <optional>
+        <value name="tcf"/>
+      </optional>
+      <optional>
+        <value name="tcl"/>
+      </optional>
+    </any>
+    <one-or-more>
+      <ref name="char"/>
+    </one-or-more>
+    <literal>}</literal>
+  </define>
+  <define name="atext">
+    <!--<losbrun> | <hisbrun> | <dbrun>-->
+    <!--<losbrun> | <hisbrun> | <dbrun>-->
+    <!--<losbrun>|<hisbrun>|<dbrun>-->
+    <choice>
+      <ref name="losbrun"/>
+      <ref name="hisbrun"/>
+      <ref name="dbrun"/>
+    </choice>
+  </define>
+  <define name="losbrun">
+    <!--\hich \afN & <aprops> \dbch \afN & <aprops> \loch <ptext>-->
+    <!--\hich \afN & <aprops> \dbch \afN & <aprops> \loch <ptext>-->
+    <!--\hich\afN&<aprops>\dbch\afN&<aprops>\loch<ptext>-->
+    <flag name="hich"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="dbch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="loch"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="hisbrun">
+    <!--\loch \afN & <aprops> \dbch \afN & <aprops> \hich <ptext>-->
+    <!--\loch \afN & <aprops> \dbch \afN & <aprops> \hich <ptext>-->
+    <!--\loch\afN&<aprops>\dbch\afN&<aprops>\hich<ptext>-->
+    <flag name="loch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="dbch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="hich"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="dbrun">
+    <!--\loch \afN & <aprops> \hich \afN & <aprops> \dbch <ptext>-->
+    <!--\loch \afN & <aprops> \hich \afN & <aprops> \dbch <ptext>-->
+    <!--\loch\afN&<aprops>\hich\afN&<aprops>\dbch<ptext>-->
+    <flag name="loch"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="hich"/>
+    <any>
+      <value name="af"/>
+      <ref name="aprops"/>
+    </any>
+    <flag name="dbch"/>
+    <ref name="ptext"/>
+  </define>
+  <define name="chrfmt">
+    <any>
+      <flag name="plain"/>
+      <value name="animtext"/>
+      <toggle name="accnone"/>
+      <toggle name="accdot"/>
+      <toggle name="acccomma"/>
+      <toggle name="acccircle"/>
+      <toggle name="accunderdot"/>
+      <toggle name="b"/>
+      <toggle name="caps"/>
+      <value name="cb"/>
+      <value name="cchs"/>
+      <value name="cf"/>
+      <value name="charscalex"/>
+      <value name="cs"/>
+      <value name="cgrid"/>
+      <destination name="g"/>
+      <value name="gcw"/>
+      <destination name="gridtbl"/>
+      <value name="dn"/>
+      <toggle name="embo"/>
+      <value name="expnd"/>
+      <value name="expndtw"/>
+      <value name="fittext"/>
+      <value name="f"/>
+      <value name="fs"/>
+      <toggle name="i"/>
+      <toggle name="impr"/>
+      <value name="kerning"/>
+      <value name="langfe"/>
+      <value name="langfenp"/>
+      <value name="lang"/>
+      <value name="langnp"/>
+      <flag name="ltrch"/>
+      <flag name="noproof"/>
+      <flag name="nosupersub"/>
+      <flag name="nosectexpand"/>
+      <flag name="rtlch"/>
+      <toggle name="outl"/>
+      <toggle name="scaps"/>
+      <toggle name="shad"/>
+      <toggle name="strike"/>
+      <toggle name="striked"/>
+      <flag name="sub"/>
+      <flag name="super"/>
+      <toggle name="ul"/>
+      <value name="ulc"/>
+      <flag name="uld"/>
+      <toggle name="uldash"/>
+      <toggle name="uldashd"/>
+      <toggle name="uldashdd"/>
+      <toggle name="uldb"/>
+      <toggle name="ulhwave"/>
+      <toggle name="ulldash"/>
+      <flag name="ulnone"/>
+      <toggle name="ulth"/>
+      <toggle name="ulthd"/>
+      <toggle name="ulthdash"/>
+      <toggle name="ulthdashd"/>
+      <toggle name="ulthdashdd"/>
+      <toggle name="ulthldash"/>
+      <toggle name="ululdbwave"/>
+      <flag name="ulw"/>
+      <toggle name="ulwave"/>
+      <value name="up"/>
+      <toggle name="v"/>
+      <flag name="webhidden"/>
+    </any>
+  </define>
+  <define name="spec">
+    <any>
+      <symbol name="chdate"/>
+      <symbol name="chdpl"/>
+      <symbol name="chdpa"/>
+      <symbol name="chtime"/>
+      <symbol name="chpgn"/>
+      <symbol name="sectnum"/>
+      <symbol name="chftn"/>
+      <symbol name="chatn"/>
+      <symbol name="chftnsep"/>
+      <symbol name="chftnsepc"/>
+      <symbol name="cell"/>
+      <symbol name="nestcell"/>
+      <symbol name="row"/>
+      <symbol name="nestrow"/>
+      <symbol name="par"/>
+      <symbol name="sect"/>
+      <symbol name="page"/>
+      <symbol name="column"/>
+      <symbol name="line"/>
+      <value name="lbr"/>
+      <flag name="softpage"/>
+      <flag name="softcol"/>
+      <flag name="softline"/>
+      <value name="softlheight"/>
+      <symbol name="tab"/>
+      <symbol name="emdash"/>
+      <symbol name="endash"/>
+      <symbol name="emspace"/>
+      <symbol name="enspace"/>
+      <symbol name="qmspace"/>
+      <symbol name="bullet"/>
+      <symbol name="lquote"/>
+      <symbol name="rquote"/>
+      <symbol name="ldblquote"/>
+      <symbol name="rdblquote"/>
+      <symbol name="|"/>
+      <symbol name="~"/>
+      <symbol name="-"/>
+      <symbol name="_"/>
+      <symbol name=":"/>
+      <symbol name="*"/>
+      <control name="'hh"/>
+      <symbol name="ltrmark"/>
+      <symbol name="rtlmark"/>
+      <symbol name="zwbo"/>
+      <symbol name="zwnbo"/>
+      <symbol name="zwj"/>
+      <symbol name="zwnj"/>
+    </any>
+  </define>
+  <define name="parborders">
+    <any>
+      <flag name="brdrt"/>
+      <flag name="brdrb"/>
+      <flag name="brdrl"/>
+      <flag name="brdrr"/>
+      <flag name="brdrbtw"/>
+      <flag name="brdrbar"/>
+      <flag name="box"/>
+      <flag name="brdrs"/>
+      <flag name="brdrth"/>
+      <flag name="brdrsh"/>
+      <flag name="brdrdb"/>
+      <flag name="brdrdot"/>
+      <flag name="brdrdash"/>
+      <flag name="brdrhair"/>
+      <flag name="brdrdashsm"/>
+      <flag name="brdrdashd"/>
+      <flag name="brdrdashdd"/>
+      <flag name="brdrdashdot"/>
+      <flag name="brdrdashdotdot"/>
+      <flag name="brdrinset"/>
+      <flag name="brdrnone"/>
+      <flag name="brdroutset"/>
+      <flag name="brdrtriple"/>
+      <flag name="brdrtnthsg"/>
+      <flag name="brdrthtnsg"/>
+      <flag name="brdrtnthtnsg"/>
+      <flag name="brdrtnthmg"/>
+      <flag name="brdrthtnmg"/>
+      <flag name="brdrtnthtnmg"/>
+      <flag name="brdrtnthlg"/>
+      <flag name="brdrthtnlg"/>
+      <flag name="brdrtnthtnlg"/>
+      <flag name="brdrwavy"/>
+      <flag name="brdrwavydb"/>
+      <flag name="brdrdashdotstr"/>
+      <flag name="brdremboss"/>
+      <flag name="brdrengrave"/>
+      <flag name="brdrframe"/>
+      <value name="brdrw"/>
+      <value name="brdrcf"/>
+      <value name="brsp"/>
+      <flag name="brdrnil"/>
+      <flag name="brdrtbl"/>
+    </any>
+  </define>
+  <define name="parfmt">
+    <any>
+      <symbol name="par"/>
+      <flag name="pard"/>
+      <flag name="spv"/>
+      <toggle name="hyphpar"/>
+      <flag name="intbl"/>
+      <value name="itap"/>
+      <flag name="keep"/>
+      <flag name="keepn"/>
+      <value name="level"/>
+      <flag name="noline"/>
+      <flag name="nowidctlpar"/>
+      <flag name="widctlpar"/>
+      <value name="outlinelevel"/>
+      <flag name="pagebb"/>
+      <flag name="sbys"/>
+      <value name="s"/>
+      <value name="yts"/>
+      <flag name="tscfirstrow"/>
+      <flag name="tsclastrow"/>
+      <flag name="tscfirstcol"/>
+      <flag name="tsclastcol"/>
+      <flag name="tscbandhorzodd"/>
+      <flag name="tscbandhorzeven"/>
+      <flag name="tscbandvertodd"/>
+      <flag name="tscbandverteven"/>
+      <flag name="tscnwcell"/>
+      <flag name="tscnecell"/>
+      <flag name="tscswcell"/>
+      <flag name="tscsecell"/>
+      <flag name="qc"/>
+      <flag name="qj"/>
+      <flag name="ql"/>
+      <flag name="qr"/>
+      <flag name="qd"/>
+      <value name="qk"/>
+      <flag name="qt"/>
+      <flag name="faauto"/>
+      <flag name="fahang"/>
+      <flag name="facenter"/>
+      <flag name="faroman"/>
+      <flag name="favar"/>
+      <flag name="fafixed"/>
+      <value name="fi"/>
+      <value name="cufi"/>
+      <value name="li"/>
+      <value name="lin"/>
+      <value name="culi"/>
+      <value name="ri"/>
+      <value name="rin"/>
+      <value name="curi"/>
+      <flag name="adjustright"/>
+      <flag name="indmirror"/>
+      <value name="sb"/>
+      <value name="sa"/>
+      <toggle name="sbauto"/>
+      <toggle name="saauto"/>
+      <value name="lisb"/>
+      <value name="lisa"/>
+      <value name="sl"/>
+      <value name="slmult"/>
+      <flag name="nosnaplinegrid"/>
+      <flag name="contextualspace"/>
+      <value name="subdocument"/>
+      <value name="prauth"/>
+      <value name="prdate"/>
+      <flag name="rtlpar"/>
+      <flag name="ltrpar"/>
+      <flag name="nocwrap"/>
+      <flag name="nowwrap"/>
+      <flag name="nooverflow"/>
+      <toggle name="aspalpha"/>
+      <toggle name="aspnum"/>
+      <flag name="collapsed"/>
+      <flag name="txbxtwno"/>
+      <flag name="txbxtwalways"/>
+      <flag name="txbxtwfirstlast"/>
+      <flag name="txbxtwfirst"/>
+      <flag name="txbxtwlast"/>
+    </any>
+  </define>
+  <define name="docfmt">
+    <any>
+      <value name="deftab"/>
+      <value name="hyphhotz"/>
+      <value name="hyphconsec"/>
+      <toggle name="hyphcaps"/>
+      <toggle name="hyphauto"/>
+      <value name="linestart"/>
+      <flag name="fracwidth"/>
+      <destination name="nextfile"/>
+      <destination name="template"/>
+      <flag name="makebackup"/>
+      <flag name="muser"/>
+      <flag name="defformat"/>
+      <flag name="psover"/>
+      <flag name="doctemp"/>
+      <destination name="windowcaption"/>
+      <value name="doctype"/>
+      <value name="ilfomacatclnup"/>
+      <flag name="horzdoc"/>
+      <flag name="vertdoc"/>
+      <flag name="jcompress"/>
+      <flag name="jexpand"/>
+      <flag name="lnongrid"/>
+      <value name="grfdocevents"/>
+      <value name="themelang"/>
+      <value name="themelangfe"/>
+      <value name="themelangcs"/>
+      <value name="relyonvml"/>
+      <value name="validatexml"/>
+      <destination name="xform"/>
+      <value name="donotembedsysfont"/>
+      <value name="donotembedlingdata"/>
+      <value name="showplaceholdtext"/>
+      <value name="trackmoves"/>
+      <value name="trackformatting"/>
+      <value name="ignoremixedcontent"/>
+      <flag name="saveinvalidxml"/>
+      <value name="showxmlerrors"/>
+      <flag name="stylelocktheme"/>
+      <flag name="stylelockqfset"/>
+      <flag name="usenormstyforlist"/>
+      <destination name="wgrffmtfilter"/>
+      <flag name="readonlyrecommended"/>
+      <value name="stylesortmethod"/>
+      <destination name="writereservhash"/>
+      <destination name="writereservation"/>
+      <flag name="saveprevpict"/>
+      <value name="viewkind"/>
+      <value name="viewscale"/>
+      <value name="viewzk"/>
+      <value name="viewbksp"/>
+      <destination name="private"/>
+      <value name="fet"/>
+      <destination name="ftnsep"/>
+      <destination name="ftnsepc"/>
+      <destination name="ftncn"/>
+      <destination name="aftnsep"/>
+      <destination name="aftnsepc"/>
+      <destination name="aftncn"/>
+      <flag name="endnotes"/>
+      <flag name="enddoc"/>
+      <flag name="ftntj"/>
+      <flag name="ftnbj"/>
+      <flag name="aendnotes"/>
+      <flag name="aenddoc"/>
+      <flag name="aftnbj"/>
+      <flag name="aftntj"/>
+      <value name="ftnstart"/>
+      <value name="aftnstart"/>
+      <flag name="ftnrstpg"/>
+      <flag name="ftnrestart"/>
+      <flag name="ftnrstcont"/>
+      <flag name="aftnrestart"/>
+      <flag name="aftnrstcont"/>
+      <flag name="ftnnar"/>
+      <flag name="ftnnalc"/>
+      <flag name="ftnnauc"/>
+      <flag name="ftnnrlc"/>
+      <flag name="ftnnruc"/>
+      <flag name="ftnnchi"/>
+      <flag name="ftnnchosung"/>
+      <flag name="ftnncnum"/>
+      <flag name="ftnndbnum"/>
+      <flag name="ftnndbnumd"/>
+      <flag name="ftnndbnumt"/>
+      <flag name="ftnndbnumk"/>
+      <flag name="ftnndbar"/>
+      <flag name="ftnnganada"/>
+      <flag name="ftnngbnum"/>
+      <flag name="ftnngbnumd"/>
+      <flag name="ftnngbnuml"/>
+      <flag name="ftnngbnumk"/>
+      <flag name="ftnnzodiac"/>
+      <flag name="ftnnzodiacd"/>
+      <flag name="ftnnzodiacl"/>
+      <flag name="aftnnar"/>
+      <flag name="aftnnalc"/>
+      <flag name="aftnnauc"/>
+      <flag name="aftnnrlc"/>
+      <flag name="aftnnruc"/>
+      <flag name="aftnnchi"/>
+      <flag name="aftnnchosung"/>
+      <flag name="aftnncnum"/>
+      <flag name="aftnndbnum"/>
+      <flag name="aftnndbnumd"/>
+      <flag name="aftnndbnumt"/>
+      <flag name="aftnndbnumk"/>
+      <flag name="aftnndbar"/>
+      <flag name="aftnnganada"/>
+      <flag name="aftnngbnum"/>
+      <flag name="aftnngbnumd"/>
+      <flag name="aftnngbnuml"/>
+      <flag name="aftnngbnumk"/>
+      <flag name="aftnnzodiac"/>
+      <flag name="aftnnzodiacd"/>
+      <flag name="aftnnzodiacl"/>
+      <value name="paperw"/>
+      <value name="paperh"/>
+      <value name="psz"/>
+      <value name="margl"/>
+      <value name="margr"/>
+      <value name="margt"/>
+      <value name="margb"/>
+      <flag name="facingp"/>
+      <value name="gutter"/>
+      <value name="ogutter"/>
+      <flag name="rtlgutter"/>
+      <flag name="gutterprl"/>
+      <flag name="margmirror"/>
+      <flag name="landscape"/>
+      <value name="pgnstart"/>
+      <flag name="widowctrl"/>
+      <flag name="twoonone"/>
+      <flag name="bookfold"/>
+      <flag name="bookfoldrev"/>
+      <value name="bookfoldsheets"/>
+      <flag name="linkstyles"/>
+      <flag name="notabind"/>
+      <flag name="wraptrsp"/>
+      <flag name="prcolbl"/>
+      <flag name="noextrasprl"/>
+      <flag name="nocolbal"/>
+      <flag name="cvmme"/>
+      <flag name="sprstsp"/>
+      <flag name="sprsspbf"/>
+      <flag name="otblrul"/>
+      <flag name="transmf"/>
+      <flag name="swpbdr"/>
+      <flag name="brkfrm"/>
+      <flag name="sprslnsp"/>
+      <flag name="subfontbysize"/>
+      <flag name="truncatefontheight"/>
+      <flag name="truncex"/>
+      <flag name="bdbfhdr"/>
+      <flag name="dntblnsbdb"/>
+      <flag name="expshrtn"/>
+      <flag name="lytexcttp"/>
+      <flag name="lytprtmet"/>
+      <flag name="msmcap"/>
+      <flag name="nolead"/>
+      <flag name="nospaceforul"/>
+      <flag name="noultrlspc"/>
+      <flag name="noxlattoyen"/>
+      <flag name="oldlinewrap"/>
+      <flag name="sprsbsp"/>
+      <flag name="sprstsm"/>
+      <flag name="wpjst"/>
+      <flag name="wpsp"/>
+      <control name="wptab"/>
+      <flag name="splytwnine"/>
+      <flag name="ftnlytwnine"/>
+      <flag name="htmautsp"/>
+      <flag name="useltbaln"/>
+      <flag name="alntblind"/>
+      <flag name="lytcalctblwd"/>
+      <flag name="lyttblrtgr"/>
+      <flag name="oldas"/>
+      <flag name="lnbrkrule"/>
+      <flag name="bdrrlswsix"/>
+      <flag name="nolnhtadjtbl"/>
+      <flag name="ApplyBrkRules"/>
+      <flag name="rempersonalinfo"/>
+      <flag name="remdttm"/>
+      <flag name="snaptogridincell"/>
+      <flag name="wrppunct"/>
+      <flag name="asianbrkrule"/>
+      <flag name="nobrkwrptbl"/>
+      <flag name="toplinepunct"/>
+      <flag name="viewnobound"/>
+      <flag name="donotshowmarkup"/>
+      <flag name="donotshowcomments"/>
+      <flag name="donotshowinsdel"/>
+      <flag name="donotshowprops"/>
+      <flag name="allowfieldendsel"/>
+      <flag name="nocompatoptions"/>
+      <flag name="nogrowautofit"/>
+      <flag name="newtblstyruls"/>
+      <destination name="background"/>
+      <flag name="nouicompat"/>
+      <flag name="nofeaturethrottle"/>
+      <flag name="forceupgrade"/>
+      <flag name="noafcnsttbl"/>
+      <flag name="noindnmbrts"/>
+      <flag name="felnbrelev"/>
+      <flag name="indrlsweleven"/>
+      <flag name="nocxsptable"/>
+      <flag name="notcvasp"/>
+      <flag name="notvatxbx"/>
+      <flag name="spltpgpar"/>
+      <control name="hwelev"/>
+      <flag name="afelev"/>
+      <flag name="cachedcolbal"/>
+      <flag name="utinl"/>
+      <flag name="notbrkcnstfrctbl"/>
+      <flag name="krnprsnet"/>
+      <flag name="usexform"/>
+      <flag name="formprot"/>
+      <flag name="allprot"/>
+      <flag name="formshade"/>
+      <flag name="formdisp"/>
+      <flag name="printdata"/>
+      <flag name="revprot"/>
+      <flag name="revisions"/>
+      <value name="revprop"/>
+      <value name="revbar"/>
+      <flag name="readprot"/>
+      <flag name="annotprot"/>
+      <flag name="stylelock"/>
+      <flag name="stylelockenforced"/>
+      <flag name="stylelockbackcomp"/>
+      <flag name="autofmtoverride"/>
+      <value name="enforceprot"/>
+      <value name="protlevel"/>
+      <flag name="tsd"/>
+      <flag name="rtldoc"/>
+      <flag name="ltrdoc"/>
+      <value name="cts"/>
+      <flag name="jsksu"/>
+      <value name="ksulang"/>
+      <destination name="fchars"/>
+      <destination name="lchars"/>
+      <flag name="nojkernpunct"/>
+      <value name="dghspace"/>
+      <value name="dgvspace"/>
+      <value name="dghorigin"/>
+      <value name="dgvorigin"/>
+      <value name="dghshow"/>
+      <value name="dgvshow"/>
+      <flag name="dgsnap"/>
+      <flag name="dgmargin"/>
+    </any>
+  </define>
+  <define name="secfmt">
+    <any>
+      <symbol name="sect"/>
+      <flag name="sectd"/>
+      <flag name="endnhere"/>
+      <value name="binfsxn"/>
+      <value name="binsxn"/>
+      <value name="ds"/>
+      <control name="pnseclvl"/>
+      <flag name="sectunlocked"/>
+      <flag name="sbknone"/>
+      <flag name="sbkcol"/>
+      <flag name="sbkpage"/>
+      <flag name="sbkeven"/>
+      <flag name="sbkodd"/>
+      <value name="cols"/>
+      <value name="colsx"/>
+      <value name="colno"/>
+      <value name="colsr"/>
+      <value name="colw"/>
+      <flag name="linebetcol"/>
+      <flag name="sftntj"/>
+      <flag name="sftnbj"/>
+      <value name="sftnstart"/>
+      <value name="saftnstart"/>
+      <flag name="sftnrstpg"/>
+      <flag name="sftnrestart"/>
+      <flag name="sftnrstcont"/>
+      <flag name="saftnrestart"/>
+      <flag name="saftnrstcont"/>
+      <flag name="sftnnar"/>
+      <flag name="sftnnalc"/>
+      <flag name="sftnnauc"/>
+      <flag name="sftnnrlc"/>
+      <flag name="sftnnruc"/>
+      <flag name="sftnnchi"/>
+      <flag name="sftnnchosung"/>
+      <flag name="sftnncnum"/>
+      <flag name="sftnndbnum"/>
+      <flag name="sftnndbnumd"/>
+      <flag name="sftnndbnumt"/>
+      <flag name="sftnndbnumk"/>
+      <flag name="sftnndbar"/>
+      <flag name="sftnnganada"/>
+      <flag name="sftnngbnum"/>
+      <flag name="sftnngbnumd"/>
+      <flag name="sftnngbnuml"/>
+      <flag name="sftnngbnumk"/>
+      <flag name="sftnnzodiac"/>
+      <flag name="sftnnzodiacd"/>
+      <flag name="sftnnzodiacl"/>
+      <flag name="saftnnar"/>
+      <flag name="saftnnalc"/>
+      <flag name="saftnnauc"/>
+      <flag name="saftnnrlc"/>
+      <flag name="saftnnruc"/>
+      <flag name="saftnnchi"/>
+      <flag name="saftnnchosung"/>
+      <flag name="saftnncnum"/>
+      <flag name="saftnndbnum"/>
+      <flag name="saftnndbnumd"/>
+      <flag name="saftnndbnumt"/>
+      <flag name="saftnndbnumk"/>
+      <flag name="saftnndbar"/>
+      <flag name="saftnnganada"/>
+      <flag name="saftnngbnum"/>
+      <flag name="saftnngbnumd"/>
+      <flag name="saftnngbnuml"/>
+      <flag name="saftnngbnumk"/>
+      <flag name="saftnnzodiac"/>
+      <flag name="saftnnzodiacd"/>
+      <flag name="saftnnzodiacl"/>
+      <value name="linemod"/>
+      <value name="linex"/>
+      <value name="linestarts"/>
+      <flag name="linerestart"/>
+      <flag name="lineppage"/>
+      <flag name="linecont"/>
+      <value name="pgwsxn"/>
+      <value name="pghsxn"/>
+      <value name="marglsxn"/>
+      <value name="margrsxn"/>
+      <value name="margtsxn"/>
+      <value name="margbsxn"/>
+      <value name="guttersxn"/>
+      <flag name="margmirsxn"/>
+      <flag name="lndscpsxn"/>
+      <flag name="titlepg"/>
+      <value name="headery"/>
+      <value name="footery"/>
+      <value name="pgnstarts"/>
+      <flag name="pgncont"/>
+      <flag name="pgnrestart"/>
+      <value name="pgnx"/>
+      <value name="pgny"/>
+      <flag name="pgndec"/>
+      <flag name="pgnucrm"/>
+      <flag name="pgnlcrm"/>
+      <flag name="pgnucltr"/>
+      <flag name="pgnlcltr"/>
+      <flag name="pgnbidia"/>
+      <flag name="pgnbidib"/>
+      <flag name="pgnchosung"/>
+      <flag name="pgncnum"/>
+      <flag name="pgndbnum"/>
+      <flag name="pgndbnumd"/>
+      <flag name="pgndbnumt"/>
+      <flag name="pgndbnumk"/>
+      <flag name="pgndecd"/>
+      <flag name="pgnganada"/>
+      <flag name="pgngbnum"/>
+      <flag name="pgngbnumd"/>
+      <flag name="pgngbnuml"/>
+      <flag name="pgngbnumk"/>
+      <flag name="pgnzodiac"/>
+      <flag name="pgnzodiacd"/>
+      <flag name="pgnzodiacl"/>
+      <flag name="pgnhindia"/>
+      <flag name="pgnhindib"/>
+      <flag name="pgnhindic"/>
+      <flag name="pgnhindid"/>
+      <flag name="pgnthaia"/>
+      <flag name="pgnthaib"/>
+      <flag name="pgnthaic"/>
+      <flag name="pgnvieta"/>
+      <flag name="pgnid"/>
+      <value name="pgnhn"/>
+      <flag name="pgnhnsh"/>
+      <flag name="pgnhnsp"/>
+      <flag name="pgnhnsc"/>
+      <flag name="pgnhnsm"/>
+      <flag name="pgnhnsn"/>
+      <flag name="vertal"/>
+      <flag name="vertalt"/>
+      <flag name="vertalb"/>
+      <flag name="vertalc"/>
+      <flag name="vertalj"/>
+      <value name="srauth"/>
+      <value name="srdate"/>
+      <flag name="rtlsect"/>
+      <flag name="ltrsect"/>
+      <flag name="horzsect"/>
+      <flag name="vertsect"/>
+      <value name="stextflow"/>
+      <flag name="pgbrdrhead"/>
+      <flag name="pgbrdrfoot"/>
+      <flag name="pgbrdrt"/>
+      <flag name="pgbrdrb"/>
+      <flag name="pgbrdrl"/>
+      <flag name="pgbrdrr"/>
+      <value name="brdrart"/>
+      <value name="pgbrdropt"/>
+      <flag name="pgbrdrsnap"/>
+      <value name="sectexpand"/>
+      <value name="sectlinegrid"/>
+      <flag name="sectdefaultcl"/>
+      <flag name="sectspecifycl"/>
+      <flag name="sectspecifyl"/>
+      <flag name="sectspecifygen"/>
+    </any>
+  </define>
+  <define name="aprops">
+    <any>
+      <toggle name="ab"/>
+      <toggle name="acaps"/>
+      <value name="acf"/>
+      <value name="adn"/>
+      <value name="aexpnd"/>
+      <value name="af"/>
+      <value name="afs"/>
+      <toggle name="ai"/>
+      <value name="alang"/>
+      <toggle name="aoutl"/>
+      <toggle name="ascaps"/>
+      <toggle name="ashad"/>
+      <toggle name="astrike"/>
+      <toggle name="aul"/>
+      <toggle name="auld"/>
+      <toggle name="auldb"/>
+      <toggle name="aulnone"/>
+      <toggle name="aulw"/>
+      <value name="aup"/>
+      <value name="fcs"/>
+      <flag name="loch"/>
+      <flag name="hich"/>
+      <flag name="dbch"/>
+    </any>
+  </define>
+  <define name="tblfmt">
+    <any>
+      <flag name="trowd"/>
+      <value name="irow"/>
+      <value name="irowband"/>
+      <symbol name="row"/>
+      <flag name="lastrow"/>
+      <flag name="tcelld"/>
+      <symbol name="nestcell"/>
+      <symbol name="nestrow"/>
+      <destination name="nesttableprops"/>
+      <destination name="nonesttables"/>
+      <value name="trgaph"/>
+      <value name="cellx"/>
+      <symbol name="cell"/>
+      <flag name="clmgf"/>
+      <flag name="clmrg"/>
+      <flag name="clvmgf"/>
+      <flag name="clvmrg"/>
+      <value name="trauth"/>
+      <value name="trdate"/>
+      <flag name="tbllkborder"/>
+      <flag name="tbllkshading"/>
+      <flag name="tbllkfont"/>
+      <flag name="tbllkcolor"/>
+      <flag name="tbllkbestfit"/>
+      <flag name="tbllkhdrrows"/>
+      <flag name="tbllklastrow"/>
+      <flag name="tbllkhdrcols"/>
+      <flag name="tbllklastcol"/>
+      <flag name="tbllknorowband"/>
+      <flag name="tbllknocolband"/>
+      <flag name="taprtl"/>
+      <toggle name="trautofit"/>
+      <flag name="trhdr"/>
+      <flag name="trkeep"/>
+      <flag name="trkeepfollow"/>
+      <value name="trleft"/>
+      <flag name="trqc"/>
+      <flag name="trql"/>
+      <flag name="trqr"/>
+      <value name="trrh"/>
+      <value name="trpaddb"/>
+      <value name="trpaddl"/>
+      <value name="trpaddr"/>
+      <value name="trpaddt"/>
+      <value name="trpaddfb"/>
+      <value name="trpaddfl"/>
+      <value name="trpaddfr"/>
+      <value name="trpaddft"/>
+      <value name="trspdb"/>
+      <value name="trspdl"/>
+      <value name="trspdr"/>
+      <value name="trspdt"/>
+      <value name="trspdfb"/>
+      <value name="trspdfl"/>
+      <value name="trspdfr"/>
+      <value name="trspdft"/>
+      <value name="trpadob"/>
+      <value name="trpadol"/>
+      <value name="trpador"/>
+      <value name="trpadot"/>
+      <value name="trpadofb"/>
+      <value name="trpadofl"/>
+      <value name="trpadofr"/>
+      <value name="trpadoft"/>
+      <value name="trspob"/>
+      <value name="trspol"/>
+      <value name="trspor"/>
+      <value name="trspot"/>
+      <value name="trspofb"/>
+      <value name="trspofl"/>
+      <value name="trspofr"/>
+      <value name="trspoft"/>
+      <value name="trwWidth"/>
+      <value name="trftsWidth"/>
+      <value name="trwWidthB"/>
+      <value name="trftsWidthB"/>
+      <value name="trwWidthA"/>
+      <value name="trftsWidthA"/>
+      <value name="tblind"/>
+      <value name="tblindtype"/>
+      <value name="trcbpat"/>
+      <value name="trcfpat"/>
+      <value name="trpat"/>
+      <value name="trshdng"/>
+      <flag name="trbgbdiag"/>
+      <flag name="trbgcross"/>
+      <flag name="trbgdcross"/>
+      <flag name="trbgdkbdiag"/>
+      <flag name="trbgdkcross"/>
+      <flag name="trbgdkdcross"/>
+      <flag name="trbgdkfdiag"/>
+      <flag name="trbgdkhor"/>
+      <flag name="trbgdkvert"/>
+      <flag name="trbgfdiag"/>
+      <flag name="trbghoriz"/>
+      <flag name="trbgvert"/>
+      <flag name="clFitText"/>
+      <flag name="clNoWrap"/>
+      <value name="clpadl"/>
+      <value name="clpadt"/>
+      <value name="clpadb"/>
+      <value name="clpadr"/>
+      <value name="clpadfl"/>
+      <value name="clpadft"/>
+      <value name="clpadfb"/>
+      <value name="clpadfr"/>
+      <value name="clspl"/>
+      <value name="clspt"/>
+      <value name="clspb"/>
+      <value name="clspr"/>
+      <value name="clspfl"/>
+      <value name="clspft"/>
+      <value name="clspfb"/>
+      <value name="clspfr"/>
+      <value name="clwWidth"/>
+      <value name="clftsWidth"/>
+      <control name="clhidemark"/>
+      <flag name="clins"/>
+      <control name="cldel"/>
+      <flag name="clmrgd"/>
+      <flag name="clmrgdr"/>
+      <flag name="clsplit"/>
+      <flag name="clsplitr"/>
+      <value name="clinsauth"/>
+      <value name="clinsdttm"/>
+      <value name="cldelauth"/>
+      <value name="cldeldttm"/>
+      <value name="clmrgdauth"/>
+      <value name="clmrgddttm"/>
+      <value name="tdfrmtxtLeft"/>
+      <value name="tdfrmtxtRight"/>
+      <value name="tdfrmtxtTop"/>
+      <value name="tdfrmtxtBottom"/>
+      <flag name="tabsnoovrlp"/>
+      <flag name="tphcol"/>
+      <flag name="tphmrg"/>
+      <flag name="tphpg"/>
+      <value name="tposnegx"/>
+      <value name="tposnegy"/>
+      <value name="tposx"/>
+      <flag name="tposxc"/>
+      <flag name="tposxi"/>
+      <flag name="tposxl"/>
+      <flag name="tposxo"/>
+      <flag name="tposxr"/>
+      <value name="tposy"/>
+      <flag name="tposyb"/>
+      <flag name="tposyc"/>
+      <flag name="tposyil"/>
+      <flag name="tposyin"/>
+      <flag name="tposyout"/>
+      <flag name="tposyt"/>
+      <flag name="tpvmrg"/>
+      <flag name="tpvpara"/>
+      <flag name="tpvpg"/>
+      <flag name="rtlrow"/>
+      <flag name="ltrrow"/>
+      <flag name="trbrdrt"/>
+      <flag name="trbrdrl"/>
+      <flag name="trbrdrb"/>
+      <flag name="trbrdrr"/>
+      <flag name="trbrdrh"/>
+      <flag name="trbrdrv"/>
+      <flag name="brdrnil"/>
+      <flag name="clbrdrb"/>
+      <flag name="clbrdrt"/>
+      <flag name="clbrdrl"/>
+      <flag name="clbrdrr"/>
+      <flag name="cldglu"/>
+      <flag name="cldgll"/>
+      <flag name="clshdrawnil"/>
+      <value name="clshdng"/>
+      <value name="clshdngraw"/>
+      <flag name="clbghoriz"/>
+      <flag name="rawclbghoriz"/>
+      <flag name="clbgvert"/>
+      <flag name="rawclbgvert"/>
+      <flag name="clbgfdiag"/>
+      <flag name="rawclbgfdiag"/>
+      <flag name="clbgbdiag"/>
+      <flag name="rawclbgbdiag"/>
+      <flag name="clbgcross"/>
+      <flag name="rawclbgcross"/>
+      <flag name="clbgdcross"/>
+      <flag name="rawclbgdcross"/>
+      <flag name="clbgdkhor"/>
+      <flag name="rawclbgdkhor"/>
+      <flag name="clbgdkvert"/>
+      <flag name="rawclbgdkvert"/>
+      <flag name="clbgdkfdiag"/>
+      <flag name="rawclbgdkfdiag"/>
+      <flag name="clbgdkbdiag"/>
+      <flag name="rawclbgdkbdiag"/>
+      <flag name="clbgdkcross"/>
+      <flag name="rawclbgdkcross"/>
+      <flag name="clbgdkdcross"/>
+      <flag name="rawclbgdkdcross"/>
+      <value name="clcfpat"/>
+      <value name="clcfpatraw"/>
+      <value name="clcbpat"/>
+      <value name="clcbpatraw"/>
+      <flag name="clvertalt"/>
+      <flag name="clvertalc"/>
+      <flag name="clvertalb"/>
+      <flag name="cltxlrtb"/>
+      <flag name="cltxtbrl"/>
+      <flag name="cltxbtlr"/>
+      <flag name="cltxlrtbv"/>
+      <flag name="cltxtbrlv"/>
+    </any>
+  </define>
+  <define name="unicode_rtf">
+    <any>
+      <value name="uc"/>
+      <value name="u"/>
+      <destination name="upr"/>
+      <destination name="ud"/>
+    </any>
+  </define>
+  <define name="pocketword_richedit">
+    <any>
+      <toggle name="disabled"/>
+      <toggle name="protect"/>
+      <value name="pwd"/>
+      <value name="urtf"/>
+    </any>
+  </define>
+</out>
