Ignore:
Timestamp:
Mar 2, 2008, 9:21:57 AM (12 years ago)
Author:
julian.reschke@…
Message:

add linking between ABNF rules (does not affect TXT version), relates to #36.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p3-payload.xml

    r228 r229  
    256256
    257257<section title="Notational Conventions and Generic Grammar" anchor="notation">
     258  <x:anchor-alias value="ALPHA"/>
     259  <x:anchor-alias value="DIGIT"/>
     260  <x:anchor-alias value="OCTET"/>
     261  <x:anchor-alias value="quoted-string"/>
     262  <x:anchor-alias value="token"/>
    258263<t>
    259264  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    263268</t>
    264269<figure><artwork type="abnf2616">
    265   ALPHA          = &lt;ALPHA, defined in &basic-rules;&gt;
    266   DIGIT          = &lt;DIGIT, defined in &basic-rules;&gt;
    267   OCTET          = &lt;OCTET, defined in &basic-rules;&gt;
     270  <x:ref>ALPHA</x:ref>          = &lt;ALPHA, defined in &basic-rules;&gt;
     271  <x:ref>DIGIT</x:ref>          = &lt;DIGIT, defined in &basic-rules;&gt;
     272  <x:ref>OCTET</x:ref>          = &lt;OCTET, defined in &basic-rules;&gt;
    268273</artwork></figure>
    269274<figure><artwork type="abnf2616">
    270   quoted-string  = &lt;quoted-string, defined in &basic-rules;&gt;
    271   token          = &lt;token, defined in &basic-rules;&gt;
     275  <x:ref>quoted-string</x:ref>  = &lt;quoted-string, defined in &basic-rules;&gt;
     276  <x:ref>token</x:ref>          = &lt;token, defined in &basic-rules;&gt;
    272277</artwork></figure>
    273278<t anchor="abnf.dependencies">
     279  <x:anchor-alias value="absoluteURI"/>
     280  <x:anchor-alias value="Allow"/>
     281  <x:anchor-alias value="Content-Length"/>
     282  <x:anchor-alias value="Content-Range"/>
     283  <x:anchor-alias value="Expires"/>
     284  <x:anchor-alias value="Last-Modified"/>
     285  <x:anchor-alias value="message-header"/>
     286  <x:anchor-alias value="relativeURI"/>
    274287  The ABNF rules below are defined in other parts:
    275288</t>
    276289<figure><!--Part1--><artwork type="abnf2616">
    277   absoluteURI    = &lt;absoluteURI, defined in &general-syntax;&gt;
    278   Content-Length = &lt;Content-Length, defined in &header-content-length;&gt;
    279   relativeURI    = &lt;relativeURI, defined in &general-syntax;&gt;
    280   message-header = &lt;message-header, defined in &message-headers;&gt;
     290  <x:ref>absoluteURI</x:ref>    = &lt;absoluteURI, defined in &general-syntax;&gt;
     291  <x:ref>Content-Length</x:ref> = &lt;Content-Length, defined in &header-content-length;&gt;
     292  <x:ref>relativeURI</x:ref>    = &lt;relativeURI, defined in &general-syntax;&gt;
     293  <x:ref>message-header</x:ref> = &lt;message-header, defined in &message-headers;&gt;
    281294</artwork></figure>
    282295<figure><!--Part2--><artwork type="abnf2616">
    283   Allow          = &lt;Allow, defined in &header-allow;&gt;
     296  <x:ref>Allow</x:ref>          = &lt;Allow, defined in &header-allow;&gt;
    284297</artwork></figure>
    285298<figure><!--Part4--><artwork type="abnf2616">
    286   Last-Modified  = &lt;Last-Modified, defined in &header-last-modified;&gt;
     299  <x:ref>Last-Modified</x:ref>  = &lt;Last-Modified, defined in &header-last-modified;&gt;
    287300</artwork></figure>
    288301<figure><!--Part5--><artwork type="abnf2616">
    289   Content-Range  = &lt;Content-Range, defined in &header-content-range;&gt;
     302  <x:ref>Content-Range</x:ref>  = &lt;Content-Range, defined in &header-content-range;&gt;
    290303</artwork></figure>
    291304<figure><!--Part6--><artwork type="abnf2616">
    292   Expires        = &lt;Expires, defined in &header-expires;&gt;
     305  <x:ref>Expires</x:ref>        = &lt;Expires, defined in &header-expires;&gt;
    293306</artwork></figure>
    294307</section>
     
    322335      also be shared.
    323336</t></list></t>
    324 <t>
     337<t anchor="rule.charset">
     338  <x:anchor-alias value="charset"/>
    325339   HTTP character sets are identified by case-insensitive tokens. The
    326340   complete set of tokens is defined by the IANA Character Set registry
     
    328342</t>
    329343<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="charset"/>
    330   charset = token
     344  <x:ref>charset</x:ref> = <x:ref>token</x:ref>
    331345</artwork></figure>
    332346<t>
     
    370384
    371385<section title="Content Codings" anchor="content.codings">
     386  <x:anchor-alias value="content-coding"/>
    372387<t>
    373388   Content coding values indicate an encoding transformation that has
     
    379394</t>
    380395<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="content-coding"/>
    381   content-coding   = token
     396  <x:ref>content-coding</x:ref>   = <x:ref>token</x:ref>
    382397</artwork></figure>
    383398<t>
     
    445460
    446461<section title="Media Types" anchor="media.types">
     462  <x:anchor-alias value="media-type"/>
     463  <x:anchor-alias value="type"/>
     464  <x:anchor-alias value="subtype"/>
    447465<t>
    448466   HTTP uses Internet Media Types <xref target="RFC2046"/> in the Content-Type (<xref target="header.content-type"/>)
     
    451469</t>
    452470<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="media-type"/><iref primary="true" item="Grammar" subitem="type"/><iref primary="true" item="Grammar" subitem="subtype"/>
    453   media-type     = type "/" subtype *( ";" parameter )
    454   type           = token
    455   subtype        = token
    456 </artwork></figure>
    457 <t>
     471  <x:ref>media-type</x:ref>     = <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> *( ";" <x:ref>parameter</x:ref> )
     472  <x:ref>type</x:ref>           = <x:ref>token</x:ref>
     473  <x:ref>subtype</x:ref>        = <x:ref>token</x:ref>
     474</artwork></figure>
     475<t anchor="rule.parameter">
     476  <x:anchor-alias value="attribute"/>
     477  <x:anchor-alias value="parameter"/>
     478  <x:anchor-alias value="value"/>
    458479   Parameters &MAY; follow the type/subtype in the form of attribute/value
    459480   pairs.
    460481</t>
    461482<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="parameter"/><iref primary="true" item="Grammar" subitem="attribute"/><iref primary="true" item="Grammar" subitem="value"/>
    462   parameter               = attribute "=" value
    463   attribute               = token
    464   value                   = token | quoted-string
     483  <x:ref>parameter</x:ref>               = <x:ref>attribute</x:ref> "=" <x:ref>value</x:ref>
     484  <x:ref>attribute</x:ref>               = <x:ref>token</x:ref>
     485  <x:ref>value</x:ref>                   = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref>
    465486</artwork></figure>
    466487<t>
     
    567588
    568589<section title="Quality Values" anchor="quality.values">
     590  <x:anchor-alias value="qvalue"/>
    569591<t>
    570592   HTTP content negotiation (<xref target="content.negotiation"/>) uses short "floating point"
     
    579601</t>
    580602<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="qvalue"/>
    581   qvalue         = ( "0" [ "." 0*3DIGIT ] )
     603  <x:ref>qvalue</x:ref>         = ( "0" [ "." 0*3<x:ref>DIGIT</x:ref> ] )
    582604                 | ( "1" [ "." 0*3("0") ] )
    583605</artwork></figure>
     
    589611
    590612<section title="Language Tags" anchor="language.tags">
     613  <x:anchor-alias value="language-tag"/>
     614  <x:anchor-alias value="primary-tag"/>
     615  <x:anchor-alias value="subtag"/>
    591616<t>
    592617   A language tag identifies a natural language spoken, written, or
     
    603628</t>
    604629<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="language-tag"/><iref primary="true" item="Grammar" subitem="primary-tag"/><iref primary="true" item="Grammar" subitem="subtag"/>
    605   language-tag  = primary-tag *( "-" subtag )
    606   primary-tag   = 1*8ALPHA
    607   subtag        = 1*8ALPHA
     630  <x:ref>language-tag</x:ref>  = <x:ref>primary-tag</x:ref> *( "-" <x:ref>subtag</x:ref> )
     631  <x:ref>primary-tag</x:ref>   = 1*8<x:ref>ALPHA</x:ref>
     632  <x:ref>subtag</x:ref>        = 1*8<x:ref>ALPHA</x:ref>
    608633</artwork></figure>
    609634<t>
     
    637662
    638663<section title="Entity Header Fields" anchor="entity.header.fields">
     664  <x:anchor-alias value="entity-header"/>
     665  <x:anchor-alias value="extension-header"/>
    639666<t>
    640667   Entity-header fields define metainformation about the entity-body or,
     
    642669</t>
    643670<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-header"/><iref primary="true" item="Grammar" subitem="extension-header"/>
    644   entity-header  = Allow                    ; &header-allow;
    645                  | Content-Encoding         ; <xref target="header.content-encoding"/>
    646                  | Content-Language         ; <xref target="header.content-language"/>
    647                  | Content-Length           ; &header-content-length;
    648                  | Content-Location         ; <xref target="header.content-location"/>
    649                  | Content-MD5              ; <xref target="header.content-md5"/>
    650                  | Content-Range            ; &header-content-range;
    651                  | Content-Type             ; <xref target="header.content-type"/>
    652                  | Expires                  ; &header-expires;
    653                  | Last-Modified            ; &header-last-modified;
    654                  | extension-header
     671  <x:ref>entity-header</x:ref>  = <x:ref>Allow</x:ref>                    ; &header-allow;
     672                 | <x:ref>Content-Encoding</x:ref>         ; <xref target="header.content-encoding"/>
     673                 | <x:ref>Content-Language</x:ref>         ; <xref target="header.content-language"/>
     674                 | <x:ref>Content-Length</x:ref>           ; &header-content-length;
     675                 | <x:ref>Content-Location</x:ref>         ; <xref target="header.content-location"/>
     676                 | <x:ref>Content-MD5</x:ref>              ; <xref target="header.content-md5"/>
     677                 | <x:ref>Content-Range</x:ref>            ; &header-content-range;
     678                 | <x:ref>Content-Type</x:ref>             ; <xref target="header.content-type"/>
     679                 | <x:ref>Expires</x:ref>                  ; &header-expires;
     680                 | <x:ref>Last-Modified</x:ref>            ; &header-last-modified;
     681                 | <x:ref>extension-header</x:ref>
    655682 
    656   extension-header = message-header
     683  <x:ref>extension-header</x:ref> = <x:ref>message-header</x:ref>
    657684</artwork></figure>
    658685<t>
     
    666693
    667694<section title="Entity Body" anchor="entity.body">
     695  <x:anchor-alias value="entity-body"/>
    668696<t>
    669697   The entity-body (if any) sent with an HTTP request or response is in
     
    671699</t>
    672700<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-body"/>
    673   entity-body    = *OCTET
     701  <x:ref>entity-body</x:ref>    = *<x:ref>OCTET</x:ref>
    674702</artwork></figure>
    675703<t>
     
    888916  <iref primary="true" item="Accept header" x:for-anchor=""/>
    889917  <iref primary="true" item="Headers" subitem="Accept" x:for-anchor=""/>
     918  <x:anchor-alias value="Accept"/>
     919  <x:anchor-alias value="accept-extension"/>
     920  <x:anchor-alias value="accept-params"/>
     921  <x:anchor-alias value="media-range"/>
    890922<t>
    891923   The Accept request-header field can be used to specify certain media
     
    896928</t>
    897929<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept"/><iref primary="true" item="Grammar" subitem="media-range"/><iref primary="true" item="Grammar" subitem="accept-params"/><iref primary="true" item="Grammar" subitem="accept-extension"/>
    898   Accept         = "Accept" ":"
    899                    #( media-range [ accept-params ] )
     930  <x:ref>Accept</x:ref>         = "Accept" ":"
     931                   #( <x:ref>media-range</x:ref> [ <x:ref>accept-params</x:ref> ] )
    900932 
    901   media-range    = ( "*/*"
    902                    | ( type "/" "*" )
    903                    | ( type "/" subtype )
    904                    ) *( ";" parameter )
    905   accept-params  = ";" "q" "=" qvalue *( accept-extension )
    906   accept-extension = ";" token [ "=" ( token | quoted-string ) ]
     933  <x:ref>media-range</x:ref>    = ( "*/*"
     934                   | ( <x:ref>type</x:ref> "/" "*" )
     935                   | ( <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> )
     936                   ) *( ";" <x:ref>parameter</x:ref> )
     937  <x:ref>accept-params</x:ref>  = ";" "q" "=" <x:ref>qvalue</x:ref> *( <x:ref>accept-extension</x:ref> )
     938  <x:ref>accept-extension</x:ref> = ";" <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ]
    907939</artwork></figure>
    908940<t>
     
    10091041  <iref primary="true" item="Accept-Charset header" x:for-anchor=""/>
    10101042  <iref primary="true" item="Headers" subitem="Accept-Charset" x:for-anchor=""/>
     1043  <x:anchor-alias value="Accept-Charset"/>
    10111044<t>
    10121045   The Accept-Charset request-header field can be used to indicate what
     
    10171050</t>
    10181051<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Charset"/>
    1019   Accept-Charset = "Accept-Charset" ":"
    1020           1#( ( charset | "*" ) [ ";" "q" "=" qvalue ] )
     1052  <x:ref>Accept-Charset</x:ref> = "Accept-Charset" ":"
     1053          1#( ( <x:ref>charset</x:ref> | "*" ) [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
    10211054</artwork></figure>
    10221055<t>
     
    10491082  <iref primary="true" item="Accept-Encoding header" x:for-anchor=""/>
    10501083  <iref primary="true" item="Headers" subitem="Accept-Encoding" x:for-anchor=""/>
     1084  <x:anchor-alias value="Accept-Encoding"/>
     1085  <x:anchor-alias value="codings"/>
    10511086<t>
    10521087   The Accept-Encoding request-header field is similar to Accept, but
     
    10551090</t>
    10561091<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Encoding"/><iref primary="true" item="Grammar" subitem="codings"/>
    1057   Accept-Encoding  = "Accept-Encoding" ":"
    1058                      #( codings [ ";" "q" "=" qvalue ] )
    1059   codings          = ( content-coding | "*" )
     1092  <x:ref>Accept-Encoding</x:ref>  = "Accept-Encoding" ":"
     1093                     #( <x:ref>codings</x:ref> [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
     1094  <x:ref>codings</x:ref>          = ( <x:ref>content-coding</x:ref> | "*" )
    10601095</artwork></figure>
    10611096<t>
     
    11251160  <iref primary="true" item="Accept-Language header" x:for-anchor=""/>
    11261161  <iref primary="true" item="Headers" subitem="Accept-Language" x:for-anchor=""/>
     1162  <x:anchor-alias value="Accept-Language"/>
     1163  <x:anchor-alias value="language-range"/>
    11271164<t>
    11281165   The Accept-Language request-header field is similar to Accept, but
     
    11311168</t>
    11321169<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Language"/><iref primary="true" item="Grammar" subitem="language-range"/>
    1133   Accept-Language = "Accept-Language" ":"
    1134                     1#( language-range [ ";" "q" "=" qvalue ] )
    1135   language-range  = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
     1170  <x:ref>Accept-Language</x:ref> = "Accept-Language" ":"
     1171                    1#( <x:ref>language-range</x:ref> [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
     1172  <x:ref>language-range</x:ref>  = ( ( 1*8<x:ref>ALPHA</x:ref> *( "-" 1*8<x:ref>ALPHA</x:ref> ) ) | "*" )
    11361173</artwork></figure>
    11371174<t>
     
    12001237  <iref primary="true" item="Content-Encoding header" x:for-anchor=""/>
    12011238  <iref primary="true" item="Headers" subitem="Content-Encoding" x:for-anchor=""/>
     1239  <x:anchor-alias value="Content-Encoding"/>
    12021240<t>
    12031241   The Content-Encoding entity-header field is used as a modifier to the
     
    12101248</t>
    12111249<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Encoding"/>
    1212   Content-Encoding  = "Content-Encoding" ":" 1#content-coding
     1250  <x:ref>Content-Encoding</x:ref>  = "Content-Encoding" ":" 1#<x:ref>content-coding</x:ref>
    12131251</artwork></figure>
    12141252<t>
     
    12471285  <iref primary="true" item="Content-Language header" x:for-anchor=""/>
    12481286  <iref primary="true" item="Headers" subitem="Content-Language" x:for-anchor=""/>
     1287  <x:anchor-alias value="Content-Language"/>
    12491288<t>
    12501289   The Content-Language entity-header field describes the natural
     
    12541293</t>
    12551294<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Language"/>
    1256   Content-Language  = "Content-Language" ":" 1#language-tag
     1295  <x:ref>Content-Language</x:ref>  = "Content-Language" ":" 1#<x:ref>language-tag</x:ref>
    12571296</artwork></figure>
    12581297<t>
     
    12981337  <iref primary="true" item="Content-Location header" x:for-anchor=""/>
    12991338  <iref primary="true" item="Headers" subitem="Content-Location" x:for-anchor=""/>
     1339  <x:anchor-alias value="Content-Location"/>
    13001340<t>
    13011341   The Content-Location entity-header field &MAY; be used to supply the
     
    13101350</t>
    13111351<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Location"/>
    1312   Content-Location = "Content-Location" ":"
    1313                     ( absoluteURI | relativeURI )
     1352  <x:ref>Content-Location</x:ref> = "Content-Location" ":"
     1353                    ( <x:ref>absoluteURI</x:ref> | <x:ref>relativeURI</x:ref> )
    13141354</artwork></figure>
    13151355<t>
     
    13451385  <iref primary="true" item="Content-MD5 header" x:for-anchor=""/>
    13461386  <iref primary="true" item="Headers" subitem="Content-MD5" x:for-anchor=""/>
     1387  <x:anchor-alias value="Content-MD5"/>
     1388  <x:anchor-alias value="md5-digest"/>
    13471389<t>
    13481390   The Content-MD5 entity-header field, as defined in <xref target="RFC1864"/>, is
     
    13531395</t>
    13541396<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-MD5"/><iref primary="true" item="Grammar" subitem="md5-digest"/>
    1355   Content-MD5   = "Content-MD5" ":" md5-digest
    1356   md5-digest    = &lt;base64 of 128 bit MD5 digest as per <xref target="RFC1864"/>&gt;
     1397  <x:ref>Content-MD5</x:ref>   = "Content-MD5" ":" <x:ref>md5-digest</x:ref>
     1398  <x:ref>md5-digest</x:ref>    = &lt;base64 of 128 bit MD5 digest as per <xref target="RFC1864"/>&gt;
    13571399</artwork></figure>
    13581400<t>
     
    14181460  <iref primary="true" item="Content-Type header" x:for-anchor=""/>
    14191461  <iref primary="true" item="Headers" subitem="Content-Type" x:for-anchor=""/>
     1462  <x:anchor-alias value="Content-Type"/>
    14201463<t>
    14211464   The Content-Type entity-header field indicates the media type of the
     
    14241467</t>
    14251468<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Type"/>
    1426   Content-Type   = "Content-Type" ":" media-type
     1469  <x:ref>Content-Type</x:ref>   = "Content-Type" ":" <x:ref>media-type</x:ref>
    14271470</artwork></figure>
    14281471<t>
     
    21662209   might be required.
    21672210</t>
     2211
    21682212<section title="MIME-Version" anchor="mime-version">
     2213  <x:anchor-alias value="MIME-Version"/>
    21692214<t>
    21702215   HTTP is not a MIME-compliant protocol. However, HTTP/1.1 messages &MAY;
     
    21772222</t>
    21782223<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="MIME-Version"/>
    2179   MIME-Version   = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT
     2224  <x:ref>MIME-Version</x:ref>   = "MIME-Version" ":" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref>
    21802225</artwork></figure>
    21812226<t>
     
    22892334<iref item="Headers" subitem="Content-Disposition" primary="true" x:for-anchor=""/>
    22902335<iref item="Content-Disposition header" primary="true" x:for-anchor=""/>
     2336  <x:anchor-alias value="content-disposition"/>
     2337  <x:anchor-alias value="disposition-type"/>
     2338  <x:anchor-alias value="disposition-parm"/>
     2339  <x:anchor-alias value="disp-extension-parm"/>
     2340  <x:anchor-alias value="disp-extension-token"/>
     2341  <x:anchor-alias value="filename-parm"/>
    22912342<t>
    22922343   The Content-Disposition response-header field has been proposed as a
     
    22962347</t>
    22972348<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="content-disposition"/><iref primary="true" item="Grammar" subitem="disposition-type"/><iref primary="true" item="Grammar" subitem="disposition-parm"/><iref primary="true" item="Grammar" subitem="filename-parm"/><iref primary="true" item="Grammar" subitem="disp-extension-token"/><iref primary="true" item="Grammar" subitem="disp-extension-parm"/>
    2298   content-disposition = "Content-Disposition" ":"
    2299                         disposition-type *( ";" disposition-parm )
    2300   disposition-type = "attachment" | disp-extension-token
    2301   disposition-parm = filename-parm | disp-extension-parm
    2302   filename-parm = "filename" "=" quoted-string
    2303   disp-extension-token = token
    2304   disp-extension-parm = token "=" ( token | quoted-string )
     2349  <x:ref>content-disposition</x:ref> = "Content-Disposition" ":"
     2350                        <x:ref>disposition-type</x:ref> *( ";" <x:ref>disposition-parm</x:ref> )
     2351  <x:ref>disposition-type</x:ref> = "attachment" | <x:ref>disp-extension-token</x:ref>
     2352  <x:ref>disposition-parm</x:ref> = <x:ref>filename-parm</x:ref> | <x:ref>disp-extension-parm</x:ref>
     2353  <x:ref>filename-parm</x:ref> = "filename" "=" <x:ref>quoted-string</x:ref>
     2354  <x:ref>disp-extension-token</x:ref> = <x:ref>token</x:ref>
     2355  <x:ref>disp-extension-parm</x:ref> = <x:ref>token</x:ref> "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> )
    23052356</artwork></figure>
    23062357<t>
Note: See TracChangeset for help on using the changeset viewer.