<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-href-27" category="std" consensus="true" submissionType="IETF" xml:lang="en" updates="7595" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <?v3xml2rfc table_borders="light"?>
  <front>
    <title>Constrained Resource Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-27"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <workgroup>CoRE Working Group</workgroup>
    <abstract>
      <?line 110?>

<t>The Constrained Resource Identifier (CRI) is a complement to the Uniform
Resource Identifier (URI) that represents the URI components in Concise
Binary Object Representation (CBOR) rather than as a sequence of characters.
This approach simplifies parsing, comparison, and reference resolution in
environments with severe limitations on processing power, code size, and
memory size.</t>
      <t>This RFC updates RFC 7595 by adding a column on the "URI Schemes"
registry as well as a note on how that registry cooperates with the
"CRI Scheme Numbers for Certain Unregistered Scheme Names" registry
created by the present RFC.</t>
      <t><cref anchor="status">(This "cref" paragraph will be removed by the RFC
editor:)<br/>
The present revision <tt>-27</tt> is a fixup to revision <tt>-26</tt>, which was
missing the fixes for Éric Vyncke's COMMENTs.
This is now intended to be ready for document approval.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-href/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/href"/>.</t>
    </note>
  </front>
  <middle>
    <?line 133?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The <xref target="STD66">Uniform Resource Identifier (URI)</xref> and its most common
usage, the URI reference, are the Internet standard for linking to
resources in hypertext formats such as <xref target="W3C.REC-html52-20171214">HTML</xref>
or the <xref target="RFC8288">HTTP "Link" header field</xref>.</t>
      <t>A URI reference is a sequence of characters chosen from the repertoire
of US-ASCII characters (Section <xref target="RFC3986" section="4.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
The individual components of a URI reference are delimited by a number
of reserved characters, which necessitates the use of a character escape
mechanism called "percent-encoding" when these reserved characters are
used in a non-delimiting function.
The resolution of URI references (Section <xref target="RFC3986" section="5" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>)
involves parsing a character sequence
into its components, combining those components with the components of a
base URI, merging path components, removing dot-segments ("<tt>.</tt>" and
"<tt>..</tt>", see Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), and
recomposing the result back into a character sequence.</t>
      <t>Overall, the proper handling of URI references is quite intricate.
This can be a problem especially in constrained environments <xref target="RFC7228"/><xref target="I-D.ietf-iotops-7228bis"/>,
where nodes often have severe code size and memory size limitations.
As a result, many implementations in such environments support only an
ad-hoc, informally-specified, bug-ridden, non-interoperable subset.</t>
      <t>This document defines the <em>Constrained Resource Identifier (CRI)</em> by
constraining URIs to a simplified subset and representing their
components in <xref target="STD94">Concise Binary Object Representation (CBOR)</xref>
instead of a sequence of characters.
Analogously, <em>CRI references</em> are to CRIs what URI references are to
URIs.</t>
      <t>CRIs and CRI references allow typical operations on URIs and URI references such as parsing,
comparison, and reference resolution (including all corner cases) to be
implemented in a comparatively small amount of code and to be less
prone to bugs and interoperability issues.</t>
      <t>As a result of simplification, however, <em>Simple CRIs</em> (i.e., not using
CRI extensions, see <xref target="extending"/>) are not capable of
expressing all URIs permitted by the generic syntax of <xref target="STD66"/> (hence
the "constrained" in "Constrained Resource Identifier").
The supported subset includes all URIs of the
<xref target="RFC7252">Constrained Application Protocol (CoAP)</xref>, most URIs of the
<xref target="STD97">Hypertext Transfer Protocol (HTTP)</xref>,
<xref target="RFC8141">Uniform Resource Names (URNs)</xref>, and other similar URIs.
The exact constraints are defined in <xref target="constraints"/>.
CRI extensions (<xref target="extending"/>) can be defined to address some of the
constraints and/or to provide more convenient representations for
certain areas of application.</t>
      <t>This RFC updates RFC 7595 <xref target="BCP35"/> by adding a column on the "URI Schemes"
registry as well as a note on how that registry cooperates with the
"CRI Scheme Numbers for Certain Unregistered Scheme Names" registry
created by the present RFC.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>In this specification, the term "byte" is used in its now customary
sense as a synonym for "octet".</t>
        <t>Terms defined in this document appear in <em>italics</em> where they
are introduced (in the plaintext form of this document, they are
rendered as the new term surrounded by underscores).</t>
        <t>The general structure of data items is shown in the <xref target="RFC8610">Concise Data Definition
Language (CDDL)</xref> <xref target="RFC9165">including its control
extensions</xref>.
Specific examples are notated in CBOR Extended
Diagnostic Notation (EDN), as originally introduced in Section <xref target="RFC8949" section="8" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> and extended in <xref section="G" sectionFormat="of" target="RFC8610"/>.
(<xref target="I-D.ietf-cbor-edn-literals"/> more rigorously defines and further extends EDN; it also
provides an application-extension syntax for the notation of CRIs.)</t>
      </section>
    </section>
    <section anchor="constraints">
      <name>From URIs to CRIs: Considerations and Constraints</name>
      <section anchor="the-cri-interchange-data-model">
        <name>The CRI interchange data model</name>
        <t>A Constrained Resource Identifier consists of the same five components
as a URI: scheme, authority, path, query, and fragment.</t>
        <t>Many components of a URI can be "absent", i.e., they are optional.
This is not mirrored in CRIs, where all components are part of all
CRIs.
Some CRI components can have values that are <tt>null</tt> or empty arrays.
By defining a default value for each of certain components, they often can
be elided at the tail of the serialized form during interchange.
(Note that some subcomponents such as port numbers or userinfo are
optional in a CRI as well and therefore can be absent from a CRI.)</t>
        <t>In a CRI reference, components can additionally be "not set"
(indicated by interchanging a discard value instead of scheme and
authority, or by <tt>null</tt> for the scheme, path and query components that
can otherwise not have that value).
(For example, for a CRI reference where authority is either not set or
has either of the NOAUTHORITY values, the equivalent URI reference's
authority is absent.)</t>
        <!-- possibly too confusing at this point.
for a CRI reference where the query is an
empty array or not set, the equivalent URI reference's query is absent).
 -->

<t>The components are subject to the considerations and constraints
listed in this section.
Note that CRI extensions can relax constraints; for
example, see <xref target="pet"/> for partially relaxing constraint <xref format="counter" target="c-nfc"/>.</t>
        <ol spacing="normal" type="C%d." start="0"><li anchor="c-nfc">
            <t>Text strings in CRIs ("CRI text strings") are CBOR text
strings (i.e., in UTF-8 form <xref target="STD63"/>) that represent Unicode
strings (see Definition D80 in <xref target="Unicode"/>) in Unicode Normalization
Form C (NFC) (see Definition D120 in <xref target="Unicode"/> and specifically
<xref target="norm-nfc"/>).</t>
          </li>
          <li anchor="c-scheme">
            <t>The scheme name can be any CRI text string that
matches the syntax of a URI scheme (see Section <xref target="RFC3986" section="3.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>, which constrains scheme names to a subset of ASCII),
in its canonical form.
(The canonical form as per Section <xref target="RFC3986" section="3.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> requires
alphabetic characters to be in lowercase.)
<!-- see also Definition D139 in {{Unicode}}). -->
The scheme is always present.</t>
          </li>
          <li anchor="c-authority">
            <t>An authority is always a host identified by an IP
address or a "registered name" (see <xref format="counter" target="c-reg-name"/> below), along with
optional port information, and optionally preceded by user
information.  </t>
            <t>
Alternatively, URIs can be formed without an authority.
The two cases for this defined in Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> are
modeled by two different special values used in the CRI authority component:  </t>
            <ul spacing="normal">
              <li>
                <t>the path can be root-based (zero or more path segments that are
each started in the URI with "<tt>/</tt>", as when the authority is
present), or</t>
              </li>
              <li>
                <t>the path can be rootless, which requires at least one path
segment, the first one of which has non-zero length and is not
started in the URI with "<tt>/</tt>" (such as in <tt>mailto:info@example.org</tt>
or in URNs <xref target="RFC8141"/>).</t>
              </li>
            </ul>
            <t>
(Note that, in <xref target="cddl"/>, <tt>no-authority</tt> is marked as a feature, as
not all CRI implementations will support authority-less URIs.)</t>
          </li>
          <li anchor="c-userinfo">
            <t>A userinfo is a text string built out of unreserved
  characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or "sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>); any other character needs to be percent-encoded (<xref target="pet"/>).
Note that this excludes the "<tt>:</tt>" character, which is commonly
deprecated as a way to delimit a cleartext password in a userinfo.</t>
          </li>
          <li anchor="c-ip-address">
            <t>An IP address can be either an IPv4 address or an
IPv6 address (optionally with a zone identifier; see
<xref target="zone-id-issue"/>).
Future versions of IP are not supported (it is likely that a binary
mapping would be strongly desirable, and that cannot be designed
ahead of time, so these versions need to be added as a future
extension if needed).</t>
          </li>
          <li anchor="c-reg-name">
            <t>A <em>registered name</em> is represented as a sequence of
one or more lowercase CRI text string <em>labels</em> that do not contain
dots ("<tt>.</tt>").
(These labels joined with dots ("<tt>.</tt>") in between them result in the
CRI equivalent of a URI registered name as per Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>.
The syntax may be further restricted by the scheme.
A URI registered name can be empty, for which case a scheme can
define a default for the host.)</t>
          </li>
          <li anchor="c-port-range">
            <t>A port is always an integer in the range from 0 to 65535.
Ports outside this range, empty ports (port subcomponents with no
digits, see Section <xref target="RFC3986" section="3.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), or ports with redundant
leading zeros, are not supported.</t>
          </li>
          <li anchor="c-port-omitted">
            <t>If the scheme's port handling is known to the
CRI creator, it is <bcp14>RECOMMENDED</bcp14> to omit the port if and only if the
port would be the same as the scheme's default port (provided the
scheme defines such a default port) or the scheme is not using
ports.</t>
          </li>
          <li anchor="c-path">
            <t>A path consists of zero or more path segments.
Note that a path of just a single zero-length path segment is allowed —
this is considered equivalent to a path of zero path segments by
HTTP and CoAP, but this equivalence does not hold for CRIs in general as they only perform
normalization on the Syntax-Based Normalization level (Section <xref target="RFC3986" section="6.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), not on the scheme-specific Scheme-Based
Normalization level (Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).  </t>
            <t>
(A CRI implementation may want to offer scheme-cognizant
interfaces, performing this scheme-specific normalization for
schemes it knows.  The interface could assert which schemes the
implementation knows and provide pre-normalized CRIs.  This can
also relieve the application from removing a lone zero-length path
segment before putting path segments into CoAP Options, i.e., from
performing the check and jump in item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>.  See also <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/>.)</t>
          </li>
          <li anchor="c-path-segment">
            <t>A path segment can be any CRI text string, with
the exception of the special "<tt>.</tt>" and "<tt>..</tt>" complete path segments.
Note that this includes the zero-length string.  </t>
            <t>
If no authority is present in a CRI, the leading path segment cannot be empty.
(See also <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/>.)</t>
          </li>
          <li anchor="c-query">
            <t>Queries are optional in URIs; there is a difference
   between an absent query and a present query that is the
   empty string.
   A CRI represents its query component as an array of zero or more CRI
   text strings, called "query parameters."
   Zero query parameters (an empty array) is equivalent to a URI where
   the query is absent; a single query parameter that is the empty
   string is equivalent to a URI with a present, but empty, query
   string.
   URI query strings are often in the form of "key=value" pairs joined
   by ampersand characters.
   A query string present in a URI is represented in a CRI by
   splitting its text up on any ampersand ("<tt>&amp;</tt>") characters into one or
   more query
   parameters, which may contain certain characters (including
   ampersands) that were percent-encoded in the URI.
   When converting a CRI to a URI, one or more query parameters are
   constructed into a URI query by joining them together with
   ampersand characters, where certain characters (including
   ampersands) present in the query parameters are percent-encoded.
   (This matches the structure and encoding of the target URI in CoAP
   requests.)</t>
          </li>
          <li anchor="c-fragment">
            <t>A fragment identifier can be any CRI text string.
   Fragment identifiers are optional in URIs; in CRIs there is a
   difference between a <tt>null</tt> fragment identifier and a fragment
   identifier that is the empty string.</t>
          </li>
          <li anchor="c-escaping">
            <t>The syntax of registered names, path segments, query
   parameters, and fragment identifiers may be further restricted and
   sub-structured by the scheme.
   There is no support, however, for escaping sub-delimiters
   that are not intended to be used in a delimiting function.</t>
          </li>
          <li anchor="c-mapping">
            <t>When converting a CRI to a URI, any character that is
   outside the allowed character range or is a delimiter in the URI syntax
   is percent-encoded.
   For CRIs, percent-encoding always uses the UTF-8 encoding form (see
   Definition D92 in <xref target="Unicode"/>) to convert the character to a sequence
   of bytes, which are then converted to a sequence of %HH triplets.
   <!-- As per 3986 2.1, use uppercase hex. -->
            </t>
          </li>
        </ol>
        <t>Examples for URIs at or beyond the boundaries of these constraints are in <xref format="counter" target="sp-constraints"/> in <xref target="the-small-print"/>.</t>
      </section>
      <section anchor="discard">
        <name>CRI References: The <tt>discard</tt> Component</name>
        <t>As with URI references and URIs, CRI references are a shorthand for a
CRI that is expressed relative to a base CRI.
URI and CRI references often <em>discard</em> part or all of the trailing
path segments of the base URI or CRI.</t>
        <t>In a URI reference, this is expressed by syntax for its path component
such as leading special path segments "<tt>.</tt>" (to protect a colon in the
first path component) and "<tt>..</tt>" (to
discard one more segment) or a leading slash (to discard all segments)
before giving the path segments to be added at the end of the (now
truncated) base URI.
For use in CRI references, instead a <tt>discard</tt> component has been
added as
an alternative to the <tt>scheme</tt> and <tt>authority</tt> components, making the
specification of discarding base URI path segments separate from
adding new path segments from the CRI reference.</t>
        <t>The discarding intent of a CRI reference is thus fully condensed to a
single value in its discard component:</t>
        <ul spacing="normal">
          <li>
            <t>An unsigned integer as the discard component specifies the number of
path segments to be discarded from the base CRI (note that this
includes the value 0 which cannot be expressed in URI references that then add any path component);</t>
          </li>
          <li>
            <t>the value <tt>true</tt> as the discard component
specifies discarding all path segments from the base CRI.</t>
          </li>
        </ul>
        <t>Note that path components can be empty; <tt>ftp://example.com/a/</tt>
includes the two path components <tt>"a"</tt> and <tt>""</tt>; the latter is the one
that will be discarded when the URI reference <tt>"b"</tt> is resolved with
<tt>ftp://example.com/a/</tt> as its base URI.</t>
        <table anchor="tbl-exa-discard">
          <name>URI reference equivalents of CRI reference examples with discard values</name>
          <thead>
            <tr>
              <th align="left">CRI reference</th>
              <th align="left">URI reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>[0, ["a"]]</tt></td>
              <td align="left">(cannot be expressed)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>[1, ["a"]]</tt></td>
              <td align="left">
                <tt>a</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[1, ["this:that"]]</tt></td>
              <td align="left">
                <tt>./this:that</tt><br/>(Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>[1, ["a", "b"]]</tt></td>
              <td align="left">
                <tt>a/b</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[2, ["a"]]</tt></td>
              <td align="left">
                <tt>../a</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[3, ["a"]]</tt></td>
              <td align="left">
                <tt>../../a</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[true, ["a"]]</tt></td>
              <td align="left">
                <tt>/a</tt></td>
            </tr>
          </tbody>
        </table>
        <t>If a scheme or authority is present in a CRI reference, the discard
component is implicitly equivalent to a value of <tt>true</tt> and thus not
included in the interchanged data item.</t>
      </section>
      <section anchor="constraints-not-expressed-by-the-data-model">
        <name>Constraints not expressed by the data model</name>
        <t>There are syntactically valid CRIs and CRI references that cannot be converted into a URI or URI reference, respectively.</t>
        <t>CRI references of this kind can be acceptable -- they still can be resolved
and result in a valid full CRI that can be converted back.
Examples of this are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>[0, ["p"]]</tt>: appends a slash and the path segment "<tt>p</tt>" to its base,
sets the query to an empty array and the fragment to <tt>null</tt></t>
          </li>
          <li>
            <t><tt>[0, null, []]</tt>: leaves the path alone but sets the query to an
empty array and the fragment to <tt>null</tt></t>
          </li>
        </ul>
        <t>(Full) CRIs that do not correspond to a valid URI are not valid on their own, and cannot be used.
Normatively they are characterized by the <xref target="cri-to-uri"/> process not producing a valid and syntax-normalized URI.
For easier understanding, they are listed here:</t>
        <ul spacing="normal">
          <li>
            <t>CRIs (and CRI references) containing dot-segments (path segment "<tt>.</tt>" or "<tt>..</tt>").  </t>
            <t>
These segments would be removed by the remove_dot_segments algorithm of <xref target="STD66"/>,
and thus never produce a normalized URI after resolution.  </t>
            <t>
(In CRI references, the <tt>discard</tt> value is used to afford segment
removal (see <xref target="discard"/>),
and with "<tt>.</tt>" being an unreserved character, expressing them as "<tt>%2e</tt>" and "<tt>%2e%2e</tt>" is not even viable,
let alone practical).</t>
          </li>
          <li>
            <t>CRIs without authority whose path starts with a leading empty segment
followed by at least one more segment.  </t>
            <t>
When converted to URIs, these would violate the requirement that in
absence of an authority, a URI's path cannot begin with two slash
characters.
(E.g., two leading empty segments would be indistinguishable from a URI with a shorter path and a present but empty authority component.)
(Compare <xref format="counter" target="c-path-segment"/>.)</t>
          </li>
          <li anchor="naked-rootless">
            <t>CRIs without authority that are rootless and have
an empty path
component (e.g., <tt>["a", true, []]</tt>), which would be indistinguishable
from its root-based equivalent (<tt>["a", null, []]</tt>) as both would have the URI <tt>a:</tt>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="norm">
      <name>Creation and Normalization</name>
      <t>In general, resource identifiers are generated when a
resource is initially created or exposed under a certain resource identifier.</t>
      <t>The naming authority that creates
a Constrained Resource Identifier <bcp14>SHOULD</bcp14> be the authority that governs
the namespace of the resource identifier (see also <xref target="BCP190"/>).
For example, for the resources of an HTTP origin server,
that server is responsible for creating the CRIs for those resources.
If the naming authority creates a URI instead that can be obtained as
a conversion result from a CRI (<xref target="cri-to-uri"/>) that CRI can be
considered to have been created by the naming authority.</t>
      <t>The naming authority <bcp14>MUST</bcp14> ensure that any CRI created
satisfies the required constraints defined in <xref target="constraints"/>. The creation of a
CRI fails if the CRI cannot be validated to satisfy all of the required
constraints.</t>
      <t>If a naming authority creates a CRI from user input, the following
normalizations can increase the likelihood that the resulting CRI
will be valid:</t>
      <ul spacing="normal">
        <li>
          <t>map the scheme name to lowercase (<xref format="counter" target="c-scheme"/>);</t>
        </li>
        <li>
          <t>map the registered name to NFC (<xref format="counter" target="c-nfc"/>) and split it on
embedded dots (<xref format="counter" target="c-reg-name"/>);</t>
        </li>
        <li>
          <t>elide the port if it is the default port for the scheme
(<xref format="counter" target="c-port-omitted"/>);
<!-- * elide a single zero-length path segment ({{<c-path}}); -->
          </t>
        </li>
        <li>
          <t>map path segments (<xref format="counter" target="c-path-segment"/>), query parameters
(<xref format="counter" target="c-query"/>), and the fragment identifier (<xref format="counter" target="c-fragment"/>) to
NFC form (<xref format="counter" target="c-nfc"/>).</t>
        </li>
      </ul>
      <t>Once a CRI has been created, it can be used and transferred without
further normalization.
All operations that operate on a CRI <bcp14>SHOULD</bcp14> rely on the
assumption that the CRI is appropriately pre-normalized.
(This does not contradict the requirement that, when CRIs are
transferred, recipients must operate on as-good-as untrusted input and
fail gracefully in the face of malicious inputs.)</t>
      <t anchor="norm-nfc">Note that the processing of CRIs does not imply that all the
constraints continuously need to be checked and enforced.
Specifically, the text normalization constraints (NFC) can be expanded
as:
The recipient of a CRI <bcp14>MAY</bcp14> reasonably expect the text strings to be in
NFC form, but as with any input <bcp14>MUST NOT</bcp14> fail (beyond possibly not
being able to process the specific CRI) if they are not.
So the onus of fulfilling the expectation is on the original creator
of the CRI, not on each processor (including consumer).
This consideration extends to the sources the CRI creator uses in
building the text strings, which the CRI creator <bcp14>MAY</bcp14> in turn expect to be in
NFC form if that expectation is reasonable.
See <xref section="C" sectionFormat="of" target="MNU"/> for some background.</t>
      <t>CRIs have been designed with the objective that, after the above
normalization, conversion of two distinct CRIs to URIs do
not yield the "same" URI, including equivalence under syntax-based
normalization (Section <xref target="RFC3986" section="6.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), but not including
scheme-based or protocol-based normalization.
Note that this objective exclusively applies to (full) CRIs, not
to CRI references: these need to be resolved relative to a base URI,
with results that may be equivalent or not depending on the base.</t>
    </section>
    <section anchor="comparison">
      <name>Comparison</name>
      <t>One of the most common operations on CRIs is comparison: determining
whether two CRIs are equivalent, without dereferencing the CRIs (i.e.,
using
them to access their respective resource(s)).</t>
      <t>Determination of equivalence or difference of CRIs is based on simple
component-wise comparison. If two CRIs are identical
component-by-component (using code-point-by-code-point comparison for
components that are Unicode strings) then it is safe to conclude that
they are equivalent.</t>
      <t>This comparison mechanism is designed to minimize false negatives while
strictly avoiding false positives.
The constraints defined in <xref target="constraints"/> imply the most
common forms of syntax- and scheme-based normalizations in URIs, but do
not comprise scheme-based or protocol-based normalizations that require accessing the
resources or detailed knowledge of the scheme's dereference algorithm
(such as the Scheme-Based Normalization (Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) specified for http(s) in Section <xref target="RFC9110" section="4.2.3" sectionFormat="bare"/> of RFC 9110 <xref target="STD97"/> that would
classify <tt>https://example.org:443</tt> as equivalent to <tt>https://example.org</tt>).
False negatives can be caused, for example, by CRIs that are not
appropriately pre-normalized and by resource aliases.</t>
      <t>When CRIs are compared to select (or avoid) a network action, such as
retrieval of a representation, fragment components (if any) do not
play a role and typically are excluded from the comparison.</t>
    </section>
    <section anchor="cri-references">
      <name>CRI References</name>
      <t>The most common usage of a Constrained Resource Identifier is to embed
it in resource representations, e.g., to express a hyperlink between the
represented resource and the resource identified by the CRI.</t>
      <t><xref target="cbor-representation"/> first defines the representation of CRIs in
<xref target="STD94">Concise Binary Object Representation (CBOR)</xref>.
When reduced representation size is desired, CRIs are often not represented directly.
Instead, CRIs are indirectly referenced through <em>CRI references</em>.
These take advantage of hierarchical locality and provide a very compact
encoding.
The CBOR representation of CRI references also is specified in
<xref target="cbor-representation"/>.</t>
      <t>The only operation defined on a CRI reference is <em>reference resolution</em>:
the act of transforming a CRI reference into a CRI.
<!-- , relative to a base URI -->
An application <bcp14>MUST</bcp14> implement this operation by applying
the algorithm specified in <xref target="reference-resolution"/> (or any algorithm
that is functionally equivalent to it).</t>
      <t>The reverse operation of transforming a CRI into a CRI reference is
not specified in detail in this document;
implementations are free to use any algorithm as long as reference
resolution of the resulting CRI reference yields the original CRI.
Notably, a CRI reference is not required to satisfy all of the
constraints of a CRI; the only requirement on a CRI reference is that
reference resolution <bcp14>MUST</bcp14> yield the original CRI.</t>
      <t>When testing for equivalence or difference, it is rarely appropriate
for applications to directly compare CRI references; instead, the
references are typically resolved to their respective CRIs before
comparison.</t>
      <section anchor="cbor-representation">
        <name>CBOR Representation</name>
        <t><cref anchor="replace-xxxx">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
        <t>A CRI or CRI reference is encoded as a CBOR array (Major type 4 in
Section <xref target="RFC8949" section="3.1" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>).
<xref target="fig-railroad"/> has a coarse visualization of the structure of this
array, without going into the details of the elements.</t>
        <figure anchor="fig-railroad">
          <name>Overall Structure of a CRI or CRI Reference</name>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 530 360">
                <g transform="translate(40 50)">
                  <text x="-30" y="-10">cri-reference:</text>
                  <path class="station" d="M5.5 14 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="station" d="M400.5 14 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="60" y="10"/>
                  <text class="rule" text-anchor="middle" x="95" y="25">scheme</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="150" y="10"/>
                  <text class="rule" text-anchor="middle" x="195" y="25">authority</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="115" y="40"/>
                  <text class="rule" text-anchor="middle" x="150" y="55">discard</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="290" y="10"/>
                  <text class="rule" text-anchor="middle" x="335" y="25">local-part</text>
                  <path d="M260 30 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M185 50 h65 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M40 40 q0 10 10 10 h65" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M260 30 q0 -10 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 20 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M130 20 h20" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M30 20 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M380 20 h20" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M10 20 h50" fill="none" stroke="black" stroke-width="1.5"/>
                </g>
                <g transform="translate(40 160)">
                  <text x="-30" y="-10">local-part:</text>
                  <path class="station" d="M5.5 74 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="station" d="M460.5 74 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="arrow" d="M237 10 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="60" y="70"/>
                  <text class="rule" text-anchor="middle" x="85" y="85">path</text>
                  <path class="arrow" d="M272 30 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="160" y="70"/>
                  <text class="rule" text-anchor="middle" x="185" y="85">query</text>
                  <path class="arrow" d="M307 50 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="260" y="70"/>
                  <text class="rule" text-anchor="middle" x="305" y="85">fragment</text>
                  <path d="M40 20 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M430 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M140 40 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M400 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 60 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M370 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M350 80 h110" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M230 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 60 q0 -10 10 -10 h110 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M210 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M130 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M140 40 q0 -10 10 -10 h240 q10 0 10 10 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M110 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M30 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M40 20 q0 -10 10 -10 h370 q10 0 10 10 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M10 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[cri-reference:
    │├──╮── scheme ── authority ──╭── local-part ──┤│
        │                         │
        ╰──────── discard ────────╯

local-part:
        ╭─────────────────────>─────────────────────╮
        │                                           │
        │          ╭──────────────>──────────────╮  │
        │          │                             │  │
        │          │           ╭──────>───────╮  │  │
        │          │           │              │  │  │
    │├──╯── path ──╯── query ──╯── fragment ──╰──╰──╰──┤│

]]></artwork>
          </artset>
        </figure>
        <t><xref target="cddl"/> has a more detailed description of the structure, in CDDL.</t>
        <figure anchor="cddl">
          <name>CDDL for CRI CBOR representation</name>
          <sourcecode type="cddl"><![CDATA[
; not expressed in this CDDL spec: trailing defaults to be left off

RFC-XXXX-Definitions = [CRI, CRI-Reference]

CRI = [
  scheme,
  authority / no-authority,
  path,                    ; use [] for empty path
  query,                   ; use [] for empty query
  fragment / null
]


CRI-Reference = [
  ((scheme / null, authority / no-authority)
   // discard),            ; relative reference
  path / null,             ; null is explicitly not set
  query / null,            ; null is explicitly not set
  fragment / null
]

scheme      = scheme-id / (scheme-name .feature "scheme-name")
scheme-id   = nint              ; -1 - scheme-number
scheme-name = text .regexp "[a-z][a-z0-9+.-]*"

no-authority = NOAUTH-ROOTBASED / NOAUTH-ROOTLESS
NOAUTH-ROOTBASED = null .feature "no-authority"
NOAUTH-ROOTLESS = true .feature "no-authority"

authority   = [?userinfo, host, ?port]
userinfo    = (false, text .feature "userinfo")
host        = (host-ip // host-name)
host-name   = (*text)      ; lowercase, NFC labels; no dot
host-ip     = (bytes .size (4/16), ?zone-id)
zone-id     = text
port        = 0..65535

discard     = DISCARD-ALL / 0..127
DISCARD-ALL = true
path        = [*text]
query       = [*text]
fragment    = text

]]></sourcecode>
        </figure>
        <t anchor="discard1">The elements of the top-level array are called <em>sections</em>.
The sections containing the rules <tt>scheme</tt>, <tt>authority</tt>, <tt>path</tt>, <tt>query</tt>, <tt>fragment</tt>
correspond to the components of a URI and thus of a CRI, as described in
<xref target="constraints"/>.
For use in CRI references, the <tt>discard</tt> section (see also <xref target="discard"/>) provides an
alternative to the <tt>scheme</tt> and <tt>authority</tt> sections.</t>
        <t anchor="prose">This CDDL specification is simplified for exposition and needs to be
augmented by the following rules for interchange of CRIs and CRI
references:</t>
        <ul spacing="normal">
          <li>
            <t>Trailing default values (<xref target="tbl-default"/>) <bcp14>MUST</bcp14> be removed.</t>
          </li>
          <li>
            <t>Two leading null values (scheme and authority both not given) <bcp14>MUST</bcp14>
be represented by using the <tt>discard</tt> alternative instead.</t>
          </li>
          <li>
            <t>An empty path in a <tt>CRI</tt> is represented as the empty array
<tt>[]</tt>.
Note that for <tt>CRI-Reference</tt> there is a difference between empty
paths and paths that are not set, represented by <tt>[]</tt> and <tt>null</tt>, respectively.</t>
          </li>
          <li>
            <t>An empty query in a <tt>CRI</tt> (no query parameters, not even an empty
string) is represented as the empty array
<tt>[]</tt>; note that this is equivalent to the absence of the question
mark in a URI, while the equivalent of just a question mark in a URI is
an array with a single query parameter represented by an empty
string <tt>[""]</tt>).
Note that for <tt>CRI-Reference</tt> there is a difference between providing
a query as above and a query that is not set, represented by <tt>null</tt>.</t>
          </li>
          <li>
            <t>An empty outer array (<tt>[]</tt>) is not a valid CRI.
It is a valid CRI reference,
equivalent to <tt>[0]</tt> as per <xref target="ingest"/>, which essentially copies the
base CRI up to and including the path section, setting query and
fragment to absent.</t>
          </li>
        </ul>
        <table anchor="tbl-default">
          <name>Default Values for CRI Sections</name>
          <thead>
            <tr>
              <th align="left">Section</th>
              <th align="left">Default Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">scheme</td>
              <td align="left">–</td>
            </tr>
            <tr>
              <td align="left">authority</td>
              <td align="left">
                <tt>null</tt></td>
            </tr>
            <tr>
              <td align="left">discard</td>
              <td align="left">
                <tt>0</tt></td>
            </tr>
            <tr>
              <td align="left">path</td>
              <td align="left">
                <tt>[]</tt></td>
            </tr>
            <tr>
              <td align="left">query</td>
              <td align="left">
                <tt>[]</tt></td>
            </tr>
            <tr>
              <td align="left">fragment</td>
              <td align="left">
                <tt>null</tt></td>
            </tr>
          </tbody>
        </table>
        <t anchor="no-indef">For interchange as separate encoded data items, CRIs <bcp14>MUST NOT</bcp14> use
indefinite length encoding (see
Section <xref target="RFC8949" section="3.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>).
This requirement is relaxed for
specifications that embed CRIs into an encompassing CBOR
representation that does provide for indefinite length encoding;
those specifications that are selective in where they provide for
indefinite length encoding are <bcp14>RECOMMENDED</bcp14> to not provide it for
embedded CRIs.</t>
        <section anchor="scheme-id">
          <name><tt>scheme-name</tt> and <tt>scheme-id</tt></name>
          <t>In the scheme section, a CRI scheme is usually given as a negative integer
<tt>scheme-id</tt> derived from the <em>scheme number</em>.
Optionally, it can instead be identified by its
<tt>scheme-name</tt> (a text string giving the scheme name as in URIs' scheme
section, mapped to lower case).
(Note that, in <xref target="cddl"/>, <tt>scheme-name</tt> is marked as a feature, as only
less constrained CRI implementations might support <tt>scheme-name</tt>.)</t>
          <t>Scheme numbers are unsigned integers that are mapped to and from
scheme names by exactly one of the following two registries:</t>
          <ul spacing="normal">
            <li>
              <t>"Uniform Resource Identifier (URI) Schemes" Registry (Section <xref target="RFC7595" section="6" sectionFormat="bare">IANA Considerations</xref> of RFC 7595 <xref target="BCP35"/> as updated by <xref target="upd"/>), or</t>
            </li>
            <li>
              <t>"CRI Scheme Numbers for Certain Unregistered Scheme Names" registry
(<xref target="cri-reg"/>).</t>
            </li>
          </ul>
          <t>The relationship of a scheme number to its <tt>scheme-id</tt> is as follows:</t>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="5.009ex" role="img" viewBox="0 -791.3 43055.4 2156.8" width="100ex">
                <defs>
                  <path d="M390 441l-24 -146h-15c0 64 -36 120 -92 120c-25 0 -51 -17 -51 -58c0 -55 134 -147 134 -242c0 -62 -48 -125 -135 -125c-34 0 -98 20 -110 20c-9 0 -18 -4 -30 -21h-17l25 156h16c0 -63 41 -130 104 -130c59 0 73 50 73 89c0 82 -130 132 -130 230c0 79 59 107 114 107 c43 0 63 -20 92 -20c11 0 22 10 30 20h16Z" id="E1-STIXWEBNORMALI-1D460" stroke-width="1"/>
                  <path d="M363 111l12 -13c-51 -60 -113 -109 -198 -109c-97 0 -137 78 -137 155c0 140 121 297 263 297c50 0 97 -27 97 -76c0 -38 -16 -70 -54 -70c-26 0 -38 21 -38 38c0 24 29 36 29 58c0 12 -10 21 -34 21c-119 0 -176 -179 -176 -259c0 -87 49 -109 94 -109 c61 0 107 33 142 67Z" id="E1-STIXWEBNORMALI-1D450" stroke-width="1"/>
                  <path d="M469 106l14 -11c-29 -34 -78 -106 -133 -106c-18 0 -41 10 -41 42c0 12 1 26 64 267c2 7 7 29 7 44c0 19 -7 35 -24 35c-36 0 -102 -85 -134 -133c-34 -51 -62 -102 -67 -122l-32 -122h-78l152 600c1 4 2 7 2 10c0 13 -10 22 -31 22c-10 0 -21 -1 -29 -2l-2 14l159 24 l-109 -416h4c53 58 125 189 216 189c42 0 57 -34 57 -70c0 -22 -6 -43 -11 -64l-58 -230c-1 -5 -2 -7 -2 -10c0 -6 3 -14 13 -14c22 0 49 35 63 53Z" id="E1-STIXWEBNORMALI-210E" stroke-width="1"/>
                  <path d="M363 112l14 -13c-70 -86 -138 -110 -200 -110c-98 0 -137 84 -137 156c0 23 1 37 6 60c25 111 135 236 262 236c42 0 102 -14 102 -76c0 -127 -167 -176 -286 -182v-28c0 -64 52 -107 113 -107c42 0 90 18 126 64zM124 211h9c104 0 198 69 198 157c0 25 -19 43 -44 43 c-74 0 -134 -115 -163 -200Z" id="E1-STIXWEBNORMALI-1D452" stroke-width="1"/>
                  <path d="M667 107l13 -11c-32 -54 -84 -104 -131 -104c-22 0 -39 10 -39 49c0 7 1 17 6 37l56 221c4 14 6 23 6 40c0 20 -6 38 -24 38c-54 0 -164 -181 -179 -242l-34 -135h-79l77 299c2 9 5 25 5 40c0 20 -5 38 -23 38c-52 0 -162 -181 -178 -242l-35 -135h-78l95 374 c0 18 -6 31 -33 31c-8 0 -19 -1 -27 -2l-2 14l157 24l-44 -169h6c94 143 154 169 192 169c37 0 55 -37 55 -81c0 -17 -3 -32 -9 -52l-10 -36h5c29 52 81 114 130 147c22 15 41 22 61 22c36 0 54 -26 54 -71c0 -18 -1 -37 -7 -61l-61 -231c-1 -3 -2 -9 -2 -12 c0 -8 6 -12 15 -12c17 0 43 16 62 53Z" id="E1-STIXWEBNORMALI-1D45A" stroke-width="1"/>
                  <path d="M285 194h-246v63h246v-63Z" id="E1-STIXWEBMAIN-2D" stroke-width="1"/>
                  <path d="M257 566c0 -26 -22 -46 -48 -46c-29 0 -48 20 -48 46c0 25 19 50 48 50c26 0 48 -25 48 -50zM227 441l-92 -364c-1 -6 -1 -10 -1 -14c0 -7 6 -10 13 -10c22 0 28 12 64 51l13 -10c-35 -45 -85 -105 -134 -105c-28 0 -40 19 -40 46c0 12 0 31 79 338c1 2 2 9 2 12 c0 17 -8 22 -31 22c-9 0 -21 -2 -28 -4l-3 16Z" id="E1-STIXWEBNORMALI-1D456" stroke-width="1"/>
                  <path d="M527 668l-149 -598c-1 -3 -2 -9 -2 -12c0 -6 5 -9 15 -9c20 0 48 35 62 56l11 -12c-30 -45 -83 -105 -130 -105c-32 0 -40 23 -40 41c0 20 2 34 10 64h-5c-74 -93 -134 -105 -171 -105c-73 0 -88 74 -88 127c0 103 103 326 257 326c57 0 80 -26 81 -50h2l53 209 c1 4 2 8 2 12c0 13 -7 20 -33 20c-9 0 -20 -2 -27 -3l-4 15zM363 340c0 47 -15 71 -56 71c-99 0 -180 -200 -180 -296c0 -49 28 -66 56 -66c70 0 136 94 164 186c11 35 16 74 16 105Z" id="E1-STIXWEBNORMALI-1D451" stroke-width="1"/>
                  <path d="M637 320h-589v66h589v-66zM637 120h-589v66h589v-66Z" id="E1-STIXWEBMAIN-3D" stroke-width="1"/>
                  <path d="M621 220h-557v66h557v-66Z" id="E1-STIXWEBMAIN-2212" stroke-width="1"/>
                  <path d="M394 0h-276v15c74 4 95 25 95 80v449c0 34 -9 49 -30 49c-10 0 -27 -5 -45 -12l-27 -10v14l179 91l9 -3v-597c0 -43 20 -61 95 -61v-15Z" id="E1-STIXWEBMAIN-31" stroke-width="1"/>
                  <path d="M467 96l-5 -6c-28 -34 -76 -98 -128 -98c-32 0 -41 23 -41 46c0 13 4 29 7 40l57 221c2 8 7 28 7 42c0 19 -6 38 -24 38c-38 0 -101 -86 -132 -133c-36 -54 -62 -101 -68 -122l-33 -124h-77l95 374c0 18 -3 32 -30 32c-10 0 -21 -2 -28 -3l-2 15l159 23l-51 -189h3 c5 0 54 70 56 73c40 50 100 116 160 116c44 0 56 -29 56 -62c0 -25 -6 -50 -11 -70l-59 -231c-1 -2 -1 -5 -1 -10c1 -6 4 -14 15 -14c24 0 48 36 62 53Z" id="E1-STIXWEBNORMALI-1D45B" stroke-width="1"/>
                  <path d="M444 428l-89 -348c-1 -4 -1 -6 -1 -9c0 -8 4 -14 14 -14c21 0 40 26 57 46l5 6l13 -11c-23 -33 -74 -107 -132 -107c-29 0 -40 19 -40 52c0 9 1 25 4 37l26 95h-1c-7 -5 -97 -126 -137 -156c-23 -17 -49 -28 -72 -28c-47 0 -61 36 -61 74c0 21 3 40 8 59l59 231 c4 15 6 21 6 25c0 12 -11 23 -33 23c-7 0 -19 -1 -26 -3l-3 15l157 26l-84 -326c-2 -9 -3 -16 -3 -24c0 -21 8 -34 26 -34c25 0 65 31 100 77c43 57 89 146 109 219l21 75h77Z" id="E1-STIXWEBNORMALI-1D462" stroke-width="1"/>
                  <path d="M214 382l4 -4c33 32 72 63 121 63c70 0 111 -69 111 -151c0 -121 -109 -301 -266 -301c-53 0 -94 18 -139 48l144 563c1 4 2 8 2 11c-1 13 -16 21 -29 21c-10 0 -22 -1 -30 -4l-3 16l158 24zM179 252l-55 -215c0 -7 32 -19 55 -19c122 0 188 174 188 276 c0 70 -38 92 -71 92c-72 0 -106 -89 -117 -134Z" id="E1-STIXWEBNORMALI-1D44F" stroke-width="1"/>
                  <path d="M175 267l5 -1c9 18 21 38 32 56c34 54 82 119 137 119c29 0 44 -21 44 -48c0 -38 -24 -82 -65 -82c-39 0 -29 38 -47 38c-61 0 -148 -256 -153 -273l-21 -76h-77l92 364c3 11 4 18 4 23c0 13 -11 19 -33 19c-7 0 -21 -2 -27 -3l-2 15l157 23Z" id="E1-STIXWEBNORMALI-1D45F" stroke-width="1"/>
                </defs>
                <g fill="black" stroke="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
                  <g transform="translate(14519,0)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="0" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="440" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="856" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="1369" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="1815" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="2525" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="2971" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D456" x="3304" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D451" x="3616" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-3D" x="4426" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="5389" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-31" x="6075" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="6797" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="7705" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="8146" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="8561" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="9075" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="9520" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="10231" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="10676" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45B" x="11010" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D462" x="11507" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="11982" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D44F" x="12692" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="13163" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45F" x="13608" y="0"/>
                  </g>
                  <g transform="translate(14519,-1200)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="0" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="440" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="856" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="1369" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="1815" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="2525" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="2971" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45B" x="3304" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D462" x="3802" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="4276" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D44F" x="4987" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="5457" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45F" x="5903" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-3D" x="6589" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="7552" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-31" x="8238" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="8960" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="9868" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="10309" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="10724" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="11238" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="11683" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="12394" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="12839" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D456" x="13173" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D451" x="13484" y="0"/>
                  </g>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[scheme-id = -1 - scheme-number
scheme-number = -1 - scheme-id
]]></artwork>
          </artset>
          <t>For example, the scheme-name <tt>coap</tt> has the (unsigned integer)
scheme-number <tt>0</tt> which is represented in a (negative integer)
scheme-id <tt>-1</tt>.</t>
        </section>
        <section anchor="the-discard-section">
          <name>The <tt>discard</tt> Section</name>
          <t>The <tt>discard</tt> section can be used in a CRI reference when neither a
scheme nor an authority is present.
It then expresses the operations performed on a base CRI by CRI references that
are equivalent to URI references with relative paths and path prefixes such as "<tt>/</tt>", "<tt>./</tt>", "<tt>../</tt>", "<tt>../../</tt>", etc.<br/>
"<tt>.</tt>" and "<tt>..</tt>" are not available in CRIs and are therefore expressed
using <tt>discard</tt> after a normalization step, as is the presence or
absence of a leading "<tt>/</tt>" (see <xref target="discard"/> for examples).</t>
          <t>E.g., a simple URI reference "<tt>foo</tt>" specifies to remove one trailing
segment, if any,
from the base URI's path, which is represented in the equivalent CRI
reference discard section as the value <tt>1</tt>; similarly "<tt>../foo</tt>" removes
two trailing segments, if any, represented as <tt>2</tt>;
and "<tt>/foo</tt>" removes all segments, represented in the <tt>discard</tt> section as the value <tt>true</tt>.
The exact semantics of the section values are defined by
<xref target="reference-resolution"/>.</t>
          <t>Most URI references that Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> calls "relative
references" (i.e., references that need to undergo a resolution
process to obtain a URI) correspond to the CRI reference form that starts with
<tt>discard</tt>.  The exception are relative references with an <tt>authority</tt>
(called a "network-path reference" in Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), which
discard the entire path of the base CRI.
These CRI references never carry a <tt>discard</tt> section: the value of
<tt>discard</tt> defaults to <tt>true</tt>.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <figure anchor="fig-ex-1">
            <name>CRI for coap://198.51.100.1:61616/.well-known/core</name>
            <sourcecode type="cbor-diag"><![CDATA[
[-1,             / scheme-id -- equivalent to "coap" /
 [h'C6336401',   / host /
  61616],        / port /
 [".well-known", / path /
  "core"]
]
]]></sourcecode>
          </figure>
          <figure anchor="fig-ex-2">
            <name>CRI Reference for /.well-known/core?rt=temperature-c</name>
            <sourcecode type="cbor-diag"><![CDATA[
[true,                  / discard /
 [".well-known",        / path /
  "core"],
 ["rt=temperature-c"]  / query /
]
]]></sourcecode>
          </figure>
          <figure anchor="fig-ex-3">
            <name>CRI for did:web:alice:bob</name>
            <sourcecode type="cbor-diag"><![CDATA[
[-6,                / scheme-id -- equivalent to "did" /
 true,              / authority = NOAUTH-ROOTLESS /
 ["web:alice:bob"]  / path /
]
]]></sourcecode>
          </figure>
        </section>
        <section anchor="specific-terminology">
          <name>Specific Terminology</name>
          <t>A CRI reference is considered <em>well-formed</em> if it matches the
structure as expressed in <xref target="cddl"/> in CDDL, with the additional
requirement that trailing <tt>null</tt> values are removed from the array.</t>
          <t>A CRI reference is considered a <em>full</em> CRI if it is well-formed
and the sequence of sections starts with a non-null <tt>scheme</tt>.</t>
          <t>A CRI reference is considered <em>relative</em> if it is well-formed
and the sequence of sections is empty or starts with a section other
than those that would constitute a <tt>scheme</tt>.</t>
        </section>
      </section>
      <section anchor="ingest">
        <name>Ingesting and encoding a CRI Reference</name>
        <t>From an abstract point of view, a CRI reference is a data structure
with six sections:</t>
        <t>scheme, authority, discard, path, query, fragment</t>
        <t>This is referred to as the <em>abstract form</em>, while the <em>interchange form</em> (<xref target="cddl"/>) has either
two sections for scheme and authority or one section for discard, but
never both of these alternatives.</t>
        <t>Each of the sections in the abstract form can be "not set" (<tt>null</tt>),
<!-- "not defined" in RFC 3986 -->
except for discard,
which is always an unsigned integer or <tt>true</tt>.  If scheme and/or
authority are non-null, discard is set to <tt>true</tt>.</t>
        <t>When ingesting a CRI reference that is in interchange form, those
sections are filled in from interchange form (sections not set are
filled with null), and the following steps are performed:</t>
        <ul spacing="normal">
          <li>
            <t>If the array is empty, replace it with <tt>[0]</tt>.</t>
          </li>
          <li>
            <t>If discard is present in interchange form (i.e., the outer array
starts with true or an unsigned integer), set scheme and authority to null.</t>
          </li>
          <li>
            <t>If scheme and/or authority are present in interchange form (i.e.,
the outer array starts with null, a text string, or a negative integer), set
discard to <tt>true</tt>.</t>
          </li>
        </ul>
        <t>Upon encoding the abstract form into interchange form, the inverse
processing is performed:  If scheme and/or authority are not null, the
discard value is not transferred (it must be true in this case).  If
they are both null, they are both left out and only discard is
transferred.
Trailing null values are removed from the array.
As a special case, an empty array is sent in place for a remaining
<tt>[0]</tt> (URI reference "").</t>
        <section anchor="unprocessable">
          <name>Error handling and extensibility</name>
          <t>It is recommended that specifications that describe the use of CRIs in CBOR-based protocols
use the error handling mechanisms outlined in this section.
Implementations of this document <bcp14>MUST</bcp14> adhere to these rules
unless a containing document overrides them.</t>
          <t>When encountering a CRI that is well-formed in terms of CBOR, but that</t>
          <ul spacing="normal">
            <li>
              <t>is not well-formed as a CRI,</t>
            </li>
            <li>
              <t>does not meet the other requirements on CRIs that are not covered by
the term "well-formed", or</t>
            </li>
            <li>
              <t>uses features not supported by the implementation,</t>
            </li>
          </ul>
          <t>the CRI is treated as "unprocessable".</t>
          <t>When encountering an unprocessable CRI,
the processor skips the entire CRI top-level array, including any CBOR
items contained therein,
and continues processing the CBOR items surrounding the unprocessable CRI.
(Note: this skipping can be implemented in bounded memory for CRIs
that do not use indefinite length encoding, as mandated for CRIs as separate
encoded data items in <xref target="no-indef"/>.)</t>
          <t>The unprocessable CRI is treated as an opaque identifier
that is distinct from all processable CRIs,
and distinct from all unprocessable CRIs with different CBOR representations.
It is up to the implementation whether unprocessable CRIs with identical representations
are treated as identical to each other or not.
Unprocessable CRIs cannot be dereferenced,
and it is an error to query any of their components.</t>
          <t>This mechanism ensures that CRI extensions
(using originally defined features or later extensions)
can be used without extending the compatibility hazard to the containing document.
For example,
if a collection of possible interaction targets contains several CRIs,
some of which use the "no-authority" feature,
an application consuming that collection that does not support that
feature can still offer the supported interaction targets.</t>
          <t>The duty of checking validity is with the recipients that rely on this
validity.
An intermediary that does not use the detailed information in a CRI
(or merely performs reference resolution) <bcp14>MAY</bcp14> pass on a CRI/CRI
reference without having fully checked it, relying on the producer
having generated a valid CRI/CRI reference.
This is true for both Simple CRIs (e.g., checking for valid UTF-8) and
for extensions (e.g., checking both for valid UTF-8 and the minimal
use of PET elements in the text-or-pet feature as per <xref target="pet"/>).</t>
          <t>A system that is checking a CRI for some reason but is not its
ultimate recipient needs to consider the tension between security
requirements and the danger of ossification <xref target="RFC9170"/>: If the system rejects
anything that it does not know, it prevents the other components from
making use of extensions.
If it passes through extensions unknown to it, that might allow
semantics pass through that the system should have been designed to
filter out.</t>
        </section>
      </section>
      <section anchor="reference-resolution">
        <name>Reference Resolution</name>
        <t>The term "relative" implies that a "base CRI" exists against which the
relative reference is applied. Aside from fragment-only references,
relative references are only usable when a base CRI is known.</t>
        <t>The following steps define the process of resolving any well-formed CRI
reference against a base CRI so that the result is a full CRI in the form of
an CRI reference:</t>
        <ol spacing="normal" type="1" start="1"><li>
            <t>Establish the base CRI of the CRI reference (compare Section <xref target="RFC3986" section="5.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) and express it in the form of an abstract (full) CRI
reference.</t>
          </li>
          <li>
            <t>Initialize a buffer with the sections from the base CRI.</t>
          </li>
          <li>
            <t>If the value of discard is <tt>true</tt> in the CRI reference (which is
implicitly the case when scheme and/or authority are present in the reference), replace the
path in the buffer with the empty array, set query to empty and fragment
to null, and set a <tt>true</tt> authority to <tt>null</tt>.  If the value of
discard is an unsigned integer, remove as many elements
from the end of the path array; if it is non-zero, set query to empty and
fragment to null.  </t>
            <t>
Set discard to <tt>true</tt> in the buffer.</t>
          </li>
          <li>
            <t>If the path section is non-null in the CRI reference, append all
elements from the path array to the array in the path section in
the buffer; set query to empty and fragment to null.</t>
          </li>
          <li>
            <t>If query is non-null in the CRI reference, set fragment to <tt>null</tt>
in the buffer.
Apart from the path and discard, copy all non-null sections from
the CRI reference to the buffer in sequence.</t>
          </li>
          <li>
            <t>Return the sections in the buffer as the resolved CRI.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="relationship-between-cris-uris-and-iris">
      <name>Relationship between CRIs, URIs, and IRIs</name>
      <t>CRIs are meant to replace both <xref target="STD66">Uniform Resource Identifiers (URIs)</xref>
and <xref target="RFC3987">Internationalized Resource Identifiers (IRIs)</xref>
in constrained environments <xref target="RFC7228"/><xref target="I-D.ietf-iotops-7228bis"/>.
Applications in these environments may never need to use URIs and IRIs
directly, especially when the resource identifier is used simply for
identification purposes or when the CRI can be directly converted into a
CoAP request.</t>
      <t>However, it may be necessary in other environments to determine the
associated URI or IRI of a CRI, and vice versa. Applications can perform
these conversions as follows:</t>
      <dl newline="true">
        <dt>CRI to URI</dt>
        <dd>
          <t>A CRI is converted to a URI as specified in <xref target="cri-to-uri"/>.</t>
        </dd>
        <dt>URI to CRI</dt>
        <dd>
          <t>The method of converting a URI to a CRI is unspecified;
implementations are free to use any algorithm as long as converting
the resulting CRI back to a URI yields an equivalent URI.
</t>
          <t>Note that CRIs are defined to enable implementing conversions from
or to URIs analogously to processing URIs into CoAP Options and
back, with the exception that item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>
and item 7 of <xref section="6.5" sectionFormat="of" target="RFC7252"/> do not apply to CRI processing.
See <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/> for more details.</t>
        </dd>
        <dt>CRI to IRI</dt>
        <dd anchor="critoiri">
          <t>A CRI can be converted to an IRI by first converting it to a URI as
specified in <xref target="cri-to-uri"/>, and then converting the URI
to an IRI as described in <xref section="3.2" sectionFormat="of" target="RFC3987"/>.</t>
        </dd>
        <dt>IRI to CRI</dt>
        <dd>
          <t>An IRI can be converted to a CRI by first converting it to a URI as
described in <xref section="3.1" sectionFormat="of" target="RFC3987"/>, and then
converting the URI to a CRI as described above.</t>
        </dd>
      </dl>
      <t>Everything about CRI references, URI references, and IRI references in
this section also applies to CRIs, URIs, and IRIs.</t>
      <section anchor="cri-to-uri">
        <name>Converting CRI (references) to URI (references)</name>
        <t>Applications <bcp14>MUST</bcp14> convert a CRI reference to a URI
reference by determining the components of the URI reference according
to the following steps and then recomposing the components to a URI
reference string as specified in Section <xref target="RFC3986" section="5.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>.</t>
        <dl newline="true">
          <dt>scheme</dt>
          <dd>
            <t>If the CRI reference contains a <tt>scheme</tt> section, the scheme
component of the URI reference consists of the value of that
section, if text (<tt>scheme-name</tt>); or, if a negative integer is given
(<tt>scheme-id</tt>), the lower case scheme name corresponding to the
scheme-id as per <xref target="scheme-id"/>.
Otherwise, the scheme component is not set.</t>
          </dd>
          <dt>authority</dt>
          <dd>
            <t>If the CRI reference contains a <tt>host-name</tt> or <tt>host-ip</tt> item, the
authority component of the URI reference consists of a host
subcomponent, optionally followed by a colon ("<tt>:</tt>") character and a
port subcomponent, optionally preceded by a <tt>userinfo</tt> subcomponent.
Otherwise, the authority component is not set.
</t>
            <t>The host subcomponent consists of the value of the <tt>host-name</tt> or
<tt>host-ip</tt> item.</t>
            <t>The <tt>userinfo</tt> subcomponent, if present, is turned into a single
string by
appending a "<tt>@</tt>".  Otherwise, both the subcomponent and the "<tt>@</tt>" sign
are omitted.
Any character in the value of the <tt>userinfo</tt> element that is not in
the set of unreserved characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or
"sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or a colon ("<tt>:</tt>") <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>The <tt>host-name</tt> is turned into a single string by joining the
elements separated by dots ("<tt>.</tt>").
Any character in the elements of a <tt>host-name</tt> item that is not in
the set of unreserved characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or
"sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) <bcp14>MUST</bcp14> be
percent-encoded.
If there are dots ("<tt>.</tt>") in such elements, the conversion fails
(percent-encoding is not able to represent such elements, as
normalization would turn the percent-encoding back to the unreserved
character that a dot is.)</t>
            <aside>
              <t>As an implementation note, an implementation with scheme-specific
  knowledge that knows it will have to interface with DNS might
  implement a shortcut to using the ToASCII procedure (<xref section="4.1" sectionFormat="of" target="RFC3490"/>) as discussed in more detail in <xref section="3.1" sectionFormat="of" target="RFC3987"/>.
  Such an optimization is formally outside the scope of the CRI
  specification, which is scheme-independent and is in terms of IRIs
  and URIs.
<cref anchor="toascii-note">Editor's note: Some other RFCs reference RFC5890 as the source of ToASCII, since that is the document that replaces RFC3490 and at least mentions ToASCII.
Unfortunately, this doesn’t define ToASCII (pointing to RFC 3490 instead), so these references are considered broken.
Instead, the present document references RFC 3490, which is the document that actually does define ToASCII.
RFC 3987 (IRIs) references RFC 3490, too, kind of keeping it alive.</cref></t>
            </aside>
          </dd>
        </dl>
        <t anchor="host-ip-to-uri">The value of a <tt>host-ip</tt> item <bcp14>MUST</bcp14> be
  represented as a string that matches the "IPv4address" or
  "IP-literal" rule (Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).</t>
        <t anchor="zone-id-issue">The inclusion of zone-ids <xref target="RFC4007"/> in URIs has a complex history
  and currently has no interoperable representation (the previous
  specification for this, <xref target="RFC6874"/>, is now obsoleted by
  <xref target="RFC9844"/>; more background information is available in <xref target="I-D.schinazi-httpbis-link-local-uri-bcp"/>).
  The CRI specification does not define a conversion from a
  CRI containing a zone-id to a URI.
  As keeping a zone-id with an IP address in a URI turned out to be
  useful while <xref target="RFC6874"/> was in effect, CRIs maintain a position in
  the grammar to optionally store a <tt>zone-id</tt>.
  This can be used by consenting CRI implementations to exchange zone
  information without being concerned by the lack of a specification
  at the URI syntax level.
  The goal is to achieve approximate feature parity with the zone-id
  support in <xref target="I-D.ietf-netmod-rfc6991-bis"/>, which also contains further
  clarifications on the use of zone-ids with IP addresses.</t>
        <t>If the CRI reference contains a <tt>port</tt> item, the port
  subcomponent consists of the value of that item in decimal
  notation.
  Otherwise, the colon ("<tt>:</tt>") character and the port subcomponent are
  both omitted.</t>
        <dl>
          <dt>path</dt>
          <dd>
            <t anchor="colon">If the CRI reference contains a <tt>discard</tt> item of value <tt>true</tt>, the
path component is considered <em>rooted</em>.  If it
contains a <tt>discard</tt> item of value <tt>0</tt> and the <tt>path</tt> item is
present, the conversion fails.  If it contains a positive discard
item, the path component is considered <em>unrooted</em> and
prefixed by as many "<tt>../</tt>" components as the <tt>discard</tt> value minus
one indicates.  If the discard value is <tt>1</tt> and the first element of
the path contains a <tt>:</tt>, the path component is prefixed by "<tt>./</tt>"
(this avoids the first element to appear as supplying a URI scheme;
compare <tt>path-noscheme</tt> in Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
</t>
            <t>If the discard item is not present and the CRI reference contains an
authority that is <tt>true</tt>, the path component of the URI reference is
considered unrooted.  Otherwise, the path component is considered
rooted.</t>
            <t>If the CRI reference contains one or more <tt>path</tt> items, the path
component is constructed by concatenating the sequence of
representations of these items.  These representations generally
contain a leading slash ("<tt>/</tt>") character and the value of each item,
processed as discussed below.  The leading slash character is
omitted for the first path item only if the path component is
considered "unrooted".  <!-- A path segment that contains a colon
character (e.g., --> <!-- "this:that") cannot directly be used as
the first such item.  Such a --> <!-- segment MUST be preceded by a
dot-segment (e.g., "./this:that") --> <!-- unless scheme and/or
authority are present. -->
            </t>
            <t>Any character in the value of a <tt>path</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
("<tt>:</tt>") or commercial at ("<tt>@</tt>") character <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>If the authority component is present (not <tt>null</tt> or <tt>true</tt>) and the
path component does not match the "path-abempty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the conversion fails.</t>
            <t>If the authority component is not present, but the scheme component
is, and the path component does not match the "path-absolute",
"path-rootless" (authority == <tt>true</tt>) or "path-empty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the conversion fails.</t>
            <t>If neither the authority component nor the scheme component are
present, and the path component does not match the "path-absolute",
"path-noscheme" or "path-empty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the
conversion fails.</t>
          </dd>
          <dt>query</dt>
          <dd>
            <t>If the CRI reference contains one or more <tt>query</tt> items,
the query component of the URI reference consists of the value of
each item, separated by an ampersand ("<tt>&amp;</tt>") character.
Otherwise, the query component is not set.
</t>
            <t>Any character in the value of a <tt>query</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
("<tt>:</tt>"), commercial at ("<tt>@</tt>"), slash ("<tt>/</tt>"), or question mark ("<tt>?</tt>")
character <bcp14>MUST</bcp14> be percent-encoded.
Additionally, any ampersand character ("<tt>&amp;</tt>") in the item
value <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
          <dt>fragment</dt>
          <dd>
            <t>If the CRI reference contains a fragment item, the fragment
component of the URI reference consists of the value of that
item.
Otherwise, the fragment component is not set.
</t>
            <t>Any character in the value of a <tt>fragment</tt> item that is
not in the set of unreserved characters or "sub-delims" or a colon
("<tt>:</tt>"), commercial at ("<tt>@</tt>"), slash ("<tt>/</tt>"), or question mark ("<tt>?</tt>")
character <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="extending">
      <name>Extending CRIs</name>
      <t>The CRI structure described up to this point, without enabling any
feature ("scheme-name", "no-authority", "userinfo"), is termed the
<em>Basic CRI</em>.
It should be sufficient for all applications that use the CoAP
protocol, as well as most other protocols employing URIs.</t>
      <t>CRIs with one or more of the three features enabled are called <em>Simple
CRIs</em>, which cover a larger subset of protocols that employ URIs.
To overcome remaining limitations, <em>Extended Forms</em> of CRIs may be
defined to enable further applications.
They will generally extend the CRI structure to accommodate more potential
values of text components of URIs, such as userinfo, hostnames, paths,
queries, and fragments.</t>
      <t>Extensions may also be defined to afford a more natural
representation of the information in a URI.
<em>Stand-in Items</em> (<xref target="stand-in"/>) are one way to provide such
representations.
For instance, information that needs to be base64-encoded in a URI can
be represented in a CRI in its natural form as a byte string instead.</t>
      <t>Extensions are or will be necessary to cover two limitations of
Simple CRIs:</t>
      <ul spacing="normal">
        <li>
          <t>Simple CRIs do not support IPvFuture (Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
Definition of such an extension probably best waits until a wider
use of new IP literal formats is planned.</t>
        </li>
        <li>
          <t>More important in practice:  </t>
          <t>
Simple CRIs do not support URI components that <em>require</em>
percent-encoding (Section <xref target="RFC3986" section="2.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) to represent them
in the URI syntax, except where that percent-encoding is used to
escape the main delimiter in use.  </t>
          <t>
E.g., the URI  </t>
          <sourcecode type="uri"><![CDATA[
https://alice/3%2f4-inch
]]></sourcecode>
          <t>
is represented by the Basic CRI  </t>
          <sourcecode type="coap-diag"><![CDATA[
[-4, ["alice"], ["3/4-inch"]]
]]></sourcecode>
          <t>
However, percent-encoding that is used at the application level is not
supported by Simple CRIs:  </t>
          <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
          <t>
CRIs have been designed to relieve implementations operating on CRIs
from string scanning, which both helps constrained implementations and
implementations that need to achieve high throughput.  </t>
          <t>
An extension supporting application-level percent-encoded text in
CRIs is described in <xref target="pet"/>.</t>
        </li>
      </ul>
      <t>Consumers of CRIs will generally notice when an extended form is in
use, by finding structures that do not match the CDDL rules given in
<xref target="cddl"/>.
Future definitions of extended forms need to strive to be
distinguishable in their structures from the extended form presented
here as well as other future forms.</t>
      <t>Extensions to CRIs are not intended to change encoding constraints;
e.g., <xref target="no-indef"/> is applicable to extended forms of CRIs as well.
This also ensures that recipients of CRIs can deal with unprocessable CRIs
as described in <xref target="unprocessable"/>.</t>
      <section anchor="stand-in">
        <name>Extended CRI: Stand-In Items</name>
        <t>Application specifications that use CRIs may explicitly enable the use
of "stand-in" items (tags or simple values).
These are data items used in place of original representation items
such as strings or arrays, where the tag or simple value is defined to
stand for a data item that can be used in the position of the stand-in
item.
Examples would be (1) tags such as 21 to 23 (Section <xref target="RFC8949" section="3.4.5.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>) or 108 (<xref section="2.1" sectionFormat="of" target="I-D.bormann-cbor-notable-tags"/>), which stand for text string components but internally
employ more compact byte string representations, or (2) reference tags and
simple values as defined in <xref target="I-D.ietf-cbor-packed"/>.</t>
        <t>Application specifications need to be explicit about which
stand-in items are allowed; otherwise, inconsistent interpretations at
different places in a system can lead to check/use vulnerabilities.</t>
        <t>(Note that specifications that define CBOR tags may be employed in CRI
extensions without actually using the tags defined there as stand-in
tags; e.g., compare the way IP addresses are represented in Basic CRIs
with <xref target="RFC9164"/>.)</t>
      </section>
      <section anchor="pet">
        <name>Extended CRI: Accommodating Percent Encoding (PET)</name>
        <t>This section presents a method to represent percent-encoded segments
of userinfo, hostnames, paths, and queries, as well as fragments.</t>
        <t>The four CDDL rules</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text .feature "userinfo")
host-name   = (*text)
path        = [*text]
query       = [*text]
fragment    = text
]]></sourcecode>
        <t>are replaced with</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text-or-pet .feature "userinfo")
host-name   = (*text-or-pet)
path        = [*text-or-pet]
query       = [*text-or-pet]
fragment    = text-or-pet

text-or-pet = text /
    text-pet-sequence .feature "text-or-pet"

; text1 and pet1 alternating, at least one pet1:
text-pet-sequence = [?text1, ((+(pet1, text1), ?pet1) // pet1)]
; pet is percent-encoded bytes
pet1 = bytes .ne ''
text1 = text .ne ""
]]></sourcecode>
        <t>That is, for each of the host-name, path, and query segments, and for
the userinfo and fragment components, an alternate representation is provided
besides a simple text string: a non-empty array of alternating non-blank text and byte
strings, the text strings of which stand for non-percent-encoded text,
while the byte strings retain the special
semantics of percent-encoded text without actually being
percent-encoded.</t>
        <t>The abovementioned DID URI</t>
        <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
        <t>can now be represented as:</t>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:7", ':', "1-balun"]]]
]]></sourcecode>
        <t>(Note that, in CBOR diagnostic notation, single quotes delimit
literals for byte strings, double quotes for text strings.)</t>
        <t>To yield a valid CRI using the <tt>text-or-pet</tt> feature, the use of byte
strings <bcp14>MUST</bcp14> be minimal.
Both the following examples are therefore not valid:</t>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:", '7:', "1-balun"]]]
]]></sourcecode>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:7", ':1', "-balun"]]]
]]></sourcecode>
        <t>An algorithm for constructing a valid <tt>text-pet-sequence</tt> might
repeatedly examine the byte sequences in each byte string; if such a
sequence stands for an unreserved ASCII character, or constitutes a
valid UTF-8 character ≥ U+0080, move this character over into a text
string by appending it to the end of the preceding text string,
prepending it to the start of the following text string, or splitting
the byte string and inserting a new text string with this character,
all while preserving the order of the bytes.
(Note that the properties of UTF-8 make this a simple linear process;
working around the NFC constraint <xref format="counter" target="c-nfc"/> in this way may be more
complex.)</t>
        <aside>
          <t>Unlike the text elements of a path or a query, which through CoAP's
heritage are designed to be processable element by element, a
text-pet-sequence does not usually produce a semantically meaningful
division into array elements.
This consequence of the flexibility in delimiters offered in URIs is
demonstrated by this example, which structurally singles out the one
':' that is <em>not</em> a delimiter at the application level.
Applications specifically designed for using CRIs will generally
avoid using the <tt>text-or-pet</tt> feature.
Applications using existing URI structures that require
text-pet-sequence elements for their representation typically need
to process them byte by byte.</t>
        </aside>
      </section>
    </section>
    <section anchor="integration-into-coap-and-ace">
      <name>Integration into CoAP and ACE</name>
      <t>This section discusses ways in which CRIs can be used in the context
of the CoAP protocol <xref target="RFC7252"/> and of Authorization for Constrained
Environments (ACE), specifically the Authorization Information Format
(AIF) <xref target="RFC9237"/>.</t>
      <section anchor="converting-between-coap-cris-and-sets-of-coap-options">
        <name>Converting Between CoAP CRIs and Sets of CoAP Options</name>
        <t>This section provides an analogue to Sections <xref target="RFC7252" section="6.4" sectionFormat="bare"/> and <xref target="RFC7252" section="6.5" sectionFormat="bare"/> of <xref target="RFC7252"/>:
Computing a set of CoAP options from a request CRI (<xref target="decompose-coap"/>) and computing a
request CRI from a set of COAP options (<xref target="compose-coap"/>).</t>
        <t>As with Sections <xref target="RFC7252" section="6.4" sectionFormat="bare"/> and <xref target="RFC7252" section="6.5" sectionFormat="bare"/> of <xref target="RFC7252"/>, the (intended or actually
used) request's destination transport address is considered an
additional parameter to these algorithms, usually used to be able to
elide (by supplying default values for) CoAP options that would
contain components of this transport address.
As with Sections <xref target="RFC7252" section="6.4" sectionFormat="bare"/> and <xref target="RFC7252" section="6.5" sectionFormat="bare"/> of <xref target="RFC7252"/>, the text in this section
speaks about the request's destination IP address and the request's
destination UDP port as components of the request's destination
transport address used in this way; transports that do not have these
components or have other components that are to be used in this way
need to specify their own URI conversion, which then applies here as well.</t>
        <t>This section makes use of the mapping between CRI scheme numbers
and URI scheme names shown in <xref target="scheme-map"/>:</t>
        <table anchor="scheme-map">
          <name>Mapping CRI Scheme Numbers and URI Scheme Names</name>
          <thead>
            <tr>
              <th align="left">CRI scheme number</th>
              <th align="left">URI scheme name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">coap</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">coaps</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">coap+tcp</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">coaps+tcp</td>
            </tr>
            <tr>
              <td align="left">24</td>
              <td align="left">coap+ws</td>
            </tr>
            <tr>
              <td align="left">25</td>
              <td align="left">coaps+ws</td>
            </tr>
          </tbody>
        </table>
        <section anchor="decompose-coap">
          <name>Decomposing a Request CRI into a set of CoAP Options</name>
          <t>The steps to parse a request's options from a CRI »cri« (and from
   the request's intended destination IP address) are as
   follows.  These steps either result in zero or more of the Uri-Host,
   Uri-Port, Uri-Path, and Uri-Query Options being included in the
   request, or they fail.</t>
          <t>Where the following speaks of deriving a text-string for a CoAP Option
value from a data item in the CRI, the presence of any
<tt>text-pet-sequence</tt> subitem (<xref target="pet"/>) in this item fails this algorithm.</t>
          <ol spacing="normal" type="1" start="1"><li>
              <t>If »cri« is not a full CRI, then fail this algorithm.</t>
            </li>
            <li>
              <t>Translate the scheme-id into a URI scheme name as per
<xref target="scheme-id"/> and
<xref target="scheme-map"/>; if a scheme-id that corresponds to a scheme
number not in this list is being used, or if a scheme-name is
being used,
fail this algorithm.
Remember the specific variant of CoAP to be used based on this
URI scheme name.</t>
            </li>
            <li>
              <t>If the »cri«'s <tt>fragment</tt> component is non-null, then fail this algorithm.</t>
            </li>
            <li>
              <t>If the <tt>host</tt> component of »cri« is a <tt>host-name</tt>, include a
Uri-Host Option and let that option's value be the text string
values of the <tt>host-name</tt> elements joined by dots.  </t>
              <t>
If the <tt>host</tt> component of »cri« is a <tt>host-ip</tt>, check whether
the IP address given represents the request's destination IP
address (and the zone-ids of both addresses also match by being
absent or by pointing to the same interface).
Only if it does not, include a Uri-Host Option, and let that
option's value be the text value of the URI representation of
the IP address, as derived in <xref target="host-ip-to-uri"/> (note that
zone-ids are never present in Uri-Host Options).</t>
            </li>
            <li>
              <t>If the <tt>port</tt> subcomponent in a »cri« is not absent, then let »port« be that
subcomponent's unsigned integer value; otherwise, let »port« be
the default port number for the scheme.</t>
            </li>
            <li>
              <t>If »port« does not equal the request's destination port,
include a Uri-Port Option and let that option's value be »port«.</t>
            </li>
            <li>
              <t>If the value of the <tt>path</tt> component of »cri« is empty or
consists of a single empty string, then move to the next step.  </t>
              <t>
Otherwise, for each element in the »path« component, include a
Uri-Path Option and let that option's value be the text string
value of that element.</t>
            </li>
            <li>
              <t>If the value of the <tt>query</tt> component of »cri« is non-empty,
then, for each element in the <tt>query</tt> component, include a
Uri-Query Option and let that option's value be the text string
value of that element.</t>
            </li>
          </ol>
        </section>
        <section anchor="compose-coap">
          <name>Composing a Request CRI from a Set of CoAP Options</name>
          <t>The steps to construct a CRI from a request's options (and the
   destination IP address on which the request was received) are as follows.
   These steps either result in a CRI or they fail.</t>
          <ol spacing="normal" type="1" start="1"><li>
              <t>Based on the variant of CoAP used in the request, choose a
<tt>scheme-id</tt> as per <xref target="scheme-id"/> and table <xref target="scheme-map"/>.  Use
that as the first value in the resulting CRI array.</t>
            </li>
            <li>
              <t>If the request includes a Uri-Host Option, insert an
<tt>authority</tt> with its value determined as follows:
If the value of the Uri-Host Option is a <tt>reg-name</tt>, split it
on any dots in the name and use the resulting text string
values as the elements of the <tt>host-name</tt> array.
If the value is an IP-literal or IPv4address, represent the IP
address as a byte string of
the correct length in <tt>host-ip</tt>; if a <tt>zone-id</tt> can be
extracted from the request's destination
IP address and if the IP address is ambiguous in the context
of the local system, append the zone-id.
If the value is none of the three, fail this algorithm.  </t>
              <t>
If the request does not include a Uri-Host Option, insert an
<tt>authority</tt> with <tt>host-ip</tt> being the byte string that
represents the request's destination IP address and,
if one is present in the request's destination address, add a
<tt>zone-id</tt>.</t>
            </li>
            <li>
              <t>If the request includes a Uri-Port Option, let »port« be that
option's value.  Otherwise, let »port« be the request's
destination port.
If »port« is not the default port for the scheme, then insert
the integer value of »port« as the value of <tt>port</tt> in the
authority.
Otherwise, elide the <tt>port</tt>.</t>
            </li>
            <li>
              <t>Insert a <tt>path</tt> component that contains an array built from
the text string values of the Uri-Path Options in the request,
or an empty array if no such options are present.</t>
            </li>
            <li>
              <t>Insert a <tt>query</tt> component that contains an array built from
the text string values of the Uri-Query Options in the request,
or an empty array if no such options are present.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="coap-options">
        <name>CoAP Options for Forward-Proxies</name>
        <t>Apart from the above procedures to convert CoAP CRIs to and from sets
of CoAP Options, two additional CoAP Options are defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/> that support requests to forward-proxies:</t>
        <ul spacing="normal">
          <li>
            <t>Proxy-Uri, and</t>
          </li>
          <li>
            <t>its more lightweight variant, Proxy-Scheme</t>
          </li>
        </ul>
        <t>This section defines analogues of these that employ CRIs and the URI
Scheme numbering provided by the present specification.</t>
        <section anchor="proxy-cri">
          <name>Proxy-CRI</name>
          <table anchor="tab-proxy-cri">
            <name>Proxy-Cri CoAP Option</name>
            <thead>
              <tr>
                <th align="left">No.</th>
                <th align="left">C</th>
                <th align="left">U</th>
                <th align="left">N</th>
                <th align="left">R</th>
                <th align="left">Name</th>
                <th align="left">Format</th>
                <th align="left">Length</th>
                <th align="left">Default</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD235</td>
                <td align="left">x</td>
                <td align="left">x</td>
                <td align="left">-</td>
                <td align="left"> </td>
                <td align="left">Proxy-Cri</td>
                <td align="left">opaque</td>
                <td align="left">1-1023</td>
                <td align="left">(none)</td>
              </tr>
            </tbody>
          </table>
          <t>The Proxy-CRI Option carries an encoded CBOR data item that represents
a full CRI.
It is used analogously to Proxy-Uri as defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/>.
The Proxy-Cri Option <bcp14>MUST</bcp14> take precedence over any of the Uri-Host,
Uri-Port, Uri-Path or Uri-Query options, as well as over any
Proxy-Uri Option (each of which <bcp14>MUST NOT</bcp14> be
included in a request containing the Proxy-Cri Option).</t>
        </section>
        <section anchor="proxy-scheme-number">
          <name>Proxy-Scheme-Number</name>
          <table anchor="tab-proxy-scheme-number">
            <name>Proxy-Scheme-Number CoAP Option</name>
            <thead>
              <tr>
                <th align="left">No.</th>
                <th align="left">C</th>
                <th align="left">U</th>
                <th align="left">N</th>
                <th align="left">R</th>
                <th align="left">Name</th>
                <th align="left">Format</th>
                <th align="left">Length</th>
                <th align="left">Default</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD239</td>
                <td align="left">x</td>
                <td align="left">x</td>
                <td align="left">-</td>
                <td align="left"> </td>
                <td align="left">Proxy-Scheme-Number</td>
                <td align="left">uint</td>
                <td align="left">0-3</td>
                <td align="left">(none)</td>
              </tr>
            </tbody>
          </table>
          <t>The Proxy-Scheme-Number Option carries a CRI scheme number represented as a
CoAP unsigned integer.
It is used analogously to Proxy-Scheme as defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/>.</t>
          <t>The Proxy-Scheme Option <bcp14>MUST NOT</bcp14> be included in a request that also
contains the Proxy-Scheme-Number Option; servers <bcp14>MUST</bcp14> reject the
request if this is the case.</t>
          <t>As per <xref section="3.2" sectionFormat="of" target="RFC7252"/>, CoAP Options are only defined as one of empty, (text) string,
opaque (byte string), or uint (unsigned integer).
The Option therefore carries an
unsigned integer that represents the CRI scheme-number (which relates to
a CRI scheme-id as defined in <xref target="scheme-id"/>).
For instance, the scheme name "coap" has the scheme-number 0 and is
represented as an unsigned integer by a zero-length CoAP Option value.</t>
        </section>
      </section>
      <section anchor="toid">
        <name>ACE AIF</name>
        <t>The AIF (Authorization Information Format, <xref target="RFC9237"/>) defined by ACE by
default uses the local part of a URI to identify a resource for which
authorization is indicated.
The type and target of this information is an extension point, briefly
called <em>Toid</em> (Type of object identifier).
<xref target="toidreg"/> registers "CRI-local-part" as a Toid.
Together with <em>Tperm</em>, an extension point for a way to indicate
individual access rights (permissions), <xref section="2" sectionFormat="of" target="RFC9237"/>
defines its general Information Model as:</t>
        <sourcecode type="cddl"><![CDATA[
AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></sourcecode>
        <t>Using the definitions in <xref target="cddl"/> together with the <xref target="RFC9237"/> default Tperm
choice <tt>REST-method-set</tt>, this information model can be specialized as
in:</t>
        <sourcecode type="cddl"><![CDATA[
CRI-local-part = [path, ?query]
AIF-CRI = AIF-Generic<CRI-local-part, REST-method-set>
]]></sourcecode>
        <!-- cddlc -irfc9237 -sAIF-CRI -r2u -tcddl - -->

</section>
    </section>
    <section anchor="impl">
      <name>Implementation Status</name>
      <t>(Boilerplate as per <xref section="2.1" sectionFormat="of" target="RFC7942"/>:)</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of
this Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>.  The description of implementations in this section is
intended to assist the IETF in its decision processes in
progressing drafts to RFCs.  Please note that the listing of any
individual implementation here does not imply endorsement by the
IETF.  Furthermore, no effort has been spent to verify the
information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a
catalog of available implementations or their features.  Readers
are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working
groups to assign due consideration to documents that have the
benefit of running code, which may serve as evidence of valuable
experimentation and feedback that have made the implemented
protocols more mature.  It is up to the individual working groups
to use this information as they see fit".
<?line -22?>
      </t>
      <t>A golang implementation of revision -10 of this document is found at:
<tt>https://github.com/thomas-fossati/href</tt>.
A Rust implementation is available at <tt>https://codeberg.org/chrysn/cri-ref</tt>;
it is being updated to revision -18 at the time of writing.
A python implementation is available as part of <tt>https://gitlab.com/chrysn/micrurus</tt>
but is based on revision -05.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Parsers of CRI references must operate on input that is assumed to be
untrusted. This means that parsers <bcp14>MUST</bcp14> fail gracefully
in the face of malicious inputs.
Additionally, parsers <bcp14>MUST</bcp14> be prepared to deal with
resource exhaustion (e.g., resulting from the allocation of big data
items) or exhaustion of the call stack (stack overflow).
See Section <xref target="RFC8949" section="10" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> for additional
security considerations relating to CBOR.</t>
      <t>The security considerations discussed in Section <xref target="RFC3986" section="7" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> and
<xref section="8" sectionFormat="of" target="RFC3987"/> for URIs and IRIs also apply to CRIs.
The security considerations discussed for URIs in <xref section="6" sectionFormat="of" target="RFC9237"/>
apply analogously to AIF-CRI <xref target="toid"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="removenumbers">RFC-editor: Please replace all references to
<xref target="sec-numbers"/> by a reference to the IANA registry.</cref></t>
      <t><cref anchor="replace-xxxx_1">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      <section anchor="upd">
        <name>Update to "Uniform Resource Identifier (URI) Schemes" Registry</name>
        <t>RFC 7595 <xref target="BCP35"/> is updated to add a column "CRI Scheme Number" to
the "Uniform Resource Identifier (URI) Schemes" Registry, an unsigned
integer unique in the union of this registry and the "CRI Scheme Numbers for
Certain Unregistered Scheme Names" registry (<xref target="cri-reg"/>).</t>
        <t>The column is initially populated from the numbers in the "CRI scheme
number" column of entries in <xref target="sec-numbers"/> that do refer to registered URI
schemes.
Existing rows that are not listed in <xref target="sec-numbers"/> at the time of initial
setup are treated as specified for new registrations below.</t>
        <t>Also, the following note is added in the "Uniform
Resource Identifier (URI) Schemes" Registry <xref target="IANA.uri-schemes"/>:</t>
        <blockquote>
          <t>The CRI Scheme Number column registers numeric identifiers for the URI
Schemes registered.
Registrants for the Uniform Resource Identifier (URI) Schemes Registry
may indicate that there are special requirements on
the CRI scheme number to be assigned for the new URI Scheme.<br/>
If that is not the case, IANA will assign a value autonomously.<br/>
If there is a special requirement, the value will be allocated via
Expert Review by the Designated Expert for the "CRI Scheme Numbers for
Certain Unregistered Scheme Names" registry in the
"Constrained RESTful Environments (CoRE) Parameters" registry group
<xref target="IANA.core-parameters"/>.<br/>
Registrants that want to indicate special requirements on a CRI
Scheme Number for a new URI-Scheme assignment are encouraged to notify
the <tt>core-parameters@ietf.org</tt>
mailing list of these requirements early.</t>
        </blockquote>
        <t>For the autonomous assignment, IANA will check whether the scheme name
already has been registered in the "CRI Scheme Numbers for Certain
Unregistered Scheme Names" registry (<xref target="cri-reg"/>).</t>
        <ul spacing="normal">
          <li>
            <t>If such a registration exists, IANA will assign the same CRI scheme
number for the "Uniform Resource Identifier (URI) Schemes" registry
that had been assigned in the row of the "CRI Scheme Numbers for
Certain Unregistered Scheme Names" registry, and will remove that row
from the latter registry autonomously.</t>
          </li>
          <li>
            <t>If such a registration does not exist, IANA will autonomously assign
a number in the range 1000 to 20000, inclusive, that has not yet
been used in either registry.</t>
          </li>
        </ul>
        <aside>
          <t>Note that the objectives for the procedure described here are:</t>
          <ul spacing="normal">
            <li>
              <t>For every URI scheme registered now or in the future, there is not
only a unique scheme name, but also a unique CRI scheme number that
can stand in for the scheme name in a CRI.
To support constrained applications, a URI-scheme registrant can ask
for a scheme number that will be a little more compact in the
representation of a CRI than the usual ones.
If that is not needed, the registrant perceives no difference from
the existing registration procedure for URI schemes, as the
additional actions are performed by IANA autonomously.</t>
            </li>
            <li>
              <t>For a name that is not registered as a name for a URI scheme, but
could be (lexically), a CRI scheme number can be registered in the
"CRI Scheme Numbers for Certain Unregistered Scheme Names" registry,
under Expert Review (<xref target="cri-reg"/>).
When a URI scheme is later actually registered under that name, this
number will then be used as the CRI scheme number of the new
registration and will be removed from the "CRI Scheme Numbers for
Certain Unregistered Scheme Names" registry.
This procedure is designed to avoid the "X-Dash" problem <xref target="RFC6648"/>.</t>
            </li>
          </ul>
        </aside>
      </section>
      <section anchor="cri-reg">
        <name>CRI Scheme Numbers for Certain Unregistered Scheme Names Registry</name>
        <t>This specification defines a new "CRI Scheme Numbers for Certain
Unregistered Scheme Names" registry in the
"Constrained RESTful Environments (CoRE) Parameters" registry group
<xref target="IANA.core-parameters"/>, with the policy "Expert Review" (Section <xref target="RFC8126" section="4.5" sectionFormat="bare"/> of RFC 8126 <xref target="BCP26"/>).
The objective is to have CRI scheme number values registered for
certain unregistered URI schemes, i.e., text strings that the
Designated Expert considers widely used in constrained applications in
place of URI scheme names.</t>
        <t>At the time of initial setup of the new column "CRI Scheme Number" in
the "Uniform Resource Identifier (URI) Schemes" Registry, the rows in
<xref target="sec-numbers"/> that are not referring to registered URI schemes are
copied into the "CRI Scheme Numbers for Certain Unregistered Scheme
Names" registry.
(At the time of writing, these are the two scheme names "mqtt" and "mqtts".)</t>
        <t>The Designated Expert performs the Expert Review for the "CRI Scheme
Numbers for Certain Unregistered Scheme Names" registry, but
also participates in the process for the "Uniform Resource Identifier
(URI) Schemes" registry as defined in <xref target="upd"/>.</t>
        <t>The same CRI scheme number value <bcp14>MUST NOT</bcp14> be assigned both in the "CRI
Scheme Number" column of the "Uniform Resource Identifier (URI)
Schemes" registry and in the "CRI Scheme Number" column of the "CRI
Scheme Numbers for Certain Unregistered Scheme Names" registry.</t>
        <section anchor="de-instructions">
          <name>Instructions for the Designated Expert</name>
          <t>The expert is instructed to be frugal in the allocation of CRI scheme
number values whose scheme-id values (<xref target="scheme-id"/>) have short
representations (1+0 and 1+1 encoding), keeping them in
reserve for applications that are likely to enjoy wide use and can
make good use of their shortness.</t>
          <t>When the expert is notified that a registration is impending in the
Uniform Resource Identifier (URI) Schemes registry (see also <xref target="upd"/>)
that has declared a special requirement on the CRI scheme number,
the expert is assigning the CRI scheme number instead of IANA doing
that autonomously.
CRI scheme number values in the range between 1000 and
20000 (inclusive) should be assigned unless a shorter representation
in CRIs appears desirable.</t>
          <t>The expert exceptionally also may make such a registration for text
strings that have not been registered in the Uniform Resource
Identifier (URI) Schemes registry if and only if the expert considers
them to be in wide use in place of URI scheme names in constrained
applications.
(Note that registrations in the CRI Scheme Numbers registry are
oblivious to the details of any URI Schemes registry registration, so
if a registration is later made in the URI Schemes registry that uses
such a previously unregistered text string as a name, the CRI Scheme
Numbers registration simply stays in place, even if the URI Schemes
registration happens to be for something different from what the
expert had in mind at the time for the CRI Scheme Numbers
registration.
Also note that the initial registrations in <xref target="tab-numbers"/> in
<xref target="sec-numbers"/> already include such registrations for the text strings
"mqtt" and "mqtts".)</t>
          <t>A registration in the "CRI Scheme Numbers for Certain Unregistered
Scheme Names" registry does not imply that
a URI scheme under this name exists or has been registered in the
Uniform Resource Identifier (URI) Schemes registry — it essentially
is only providing an integer identifier for an otherwise uninterpreted
text string.</t>
          <t>If a registration is made in the "Uniform Resource Identifier (URI)
Schemes" registry with a scheme name that has an entry in the "CRI
Scheme Numbers for Certain Unregistered Scheme Names" registry, the
CRI scheme number from this entry is copied over to the CRI scheme
number column of the "Uniform Resource Identifier (URI) Schemes"
Registry, and the row is deleted from the "CRI Scheme Numbers for
Certain Unregistered Scheme Names" registry.</t>
          <t>Any questions or issues that might interest a wider audience might be
raised by the expert on the core-parameters@ietf.org mailing list for
a time-limited discussion.</t>
        </section>
        <section anchor="structure-of-entries">
          <name>Structure of Entries</name>
          <t>Each entry in the registry must include:</t>
          <dl newline="true">
            <dt>CRI scheme number:</dt>
            <dd>
              <t>An unsigned integer unique in this registry</t>
            </dd>
            <dt>URI scheme name:</dt>
            <dd>
              <t>a text string that would be acceptable for registration as a URI
Scheme Name in the Uniform Resource Identifier (URI) Schemes
registry</t>
            </dd>
            <dt>Reference:</dt>
            <dd>
              <t>a reference to a document, if available, or the registrant</t>
            </dd>
          </dl>
          <t>The Reference field can contain helpful information (including the
name of the registrant) that may be available for the registration,
with the expectation that this information may be made available with
a URI-Scheme registration that is later made under that URI scheme name.</t>
        </section>
      </section>
      <section anchor="tags-iana">
        <name>CBOR Tags Registry</name>
        <t><cref anchor="cpa">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in [I-D.bormann-cbor-draft-numbers].  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.</cref></t>
        <t>In the "CBOR Tags" registry <xref target="IANA.cbor-tags"/>, IANA is requested to assign the
tags in <xref target="tab-tag-values"/> from the "specification required" space
(suggested assignment: 99), with the present document as the
specification reference.</t>
        <table anchor="tab-tag-values">
          <name>Values for Tags</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">CPA99</td>
              <td align="left">array</td>
              <td align="left">CRI Reference</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="coap-option-numbers-registry">
        <name>CoAP Option Numbers Registry</name>
        <t><cref anchor="tbd">RFC-Editor: For each usage of the term "TBD", please remove
  the prefix "TBD" from the indicated value and replace the
  residue with the value actually assigned by IANA; perform an
  analogous substitution for all other occurrences of the prefix
  "TBD" in the document.
  Finally, please remove this note.</cref></t>
        <t>In the "CoAP Option Numbers" registry in the "CoRE Parameters" registry group <xref target="IANA.core-parameters"/>,
IANA is requested to register the CoAP Option Numbers
as described in <xref target="tab-iana-options"/> and defined in <xref target="coap-options"/>.</t>
        <table anchor="tab-iana-options">
          <name>New CoAP Option Numbers</name>
          <thead>
            <tr>
              <th align="left">No.</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD235</td>
              <td align="left">Proxy-Cri</td>
              <td align="left">RFC-XXXX</td>
            </tr>
            <tr>
              <td align="left">TBD239</td>
              <td align="left">Proxy-Scheme-Number</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="toidreg">
        <name>Media-Type subparameters for ACE AIF</name>
        <t>In the "Sub-Parameter Registry for application/aif+cbor and
application/aif+json" in the "Media Type Sub-Parameter Registries"
registry group <xref target="IANA.media-type-sub-parameters"/>, IANA is requested to
register:</t>
        <table anchor="tab-iana-toid">
          <name>ACE AIF Toid for CRI</name>
          <thead>
            <tr>
              <th align="left">Parameter</th>
              <th align="left">Name</th>
              <th align="left">Description/Specification</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Toid</td>
              <td align="left">CRI-local-part</td>
              <td align="left">local-part of CRI</td>
              <td align="left">
                <xref target="toid"/> of RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="content-format-for-cri-in-aif">
        <name>Content-Format for CRI in AIF</name>
        <t>IANA is requested to register a Content-Format identifier in the "CoAP
Content-Formats" registry (range 256-999), within the "Constrained
RESTful Environments (CoRE) Parameters" registry group
<xref target="IANA.core-parameters"/>, as follows:</t>
        <table anchor="tab-iana-toid-ct">
          <name>Content-Format for ACE AIF with CRI-local-part Toid</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/aif+cbor;Toid=CRI-local-part</td>
              <td align="left">-</td>
              <td align="left">TBD</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4007">
          <front>
            <title>IPv6 Scoped Address Architecture</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="B. Zill" initials="B." surname="Zill"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document specifies the architectural characteristics, expected behavior, textual representation, and usage of IPv6 addresses of different scopes. According to a decision in the IPv6 working group, this document intentionally avoids the syntax and usage of unicast site-local addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4007"/>
          <seriesInfo name="DOI" value="10.17487/RFC4007"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc6991-bis">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="Jürgen Schönwälder" initials="J." surname="Schönwälder">
              <organization>Constructor University</organization>
            </author>
            <date day="23" month="June" year="2025"/>
            <abstract>
              <t>   This document defines a collection of common data types to be used
   with the YANG data modeling language.  This version of the document
   adds several new type definitions and obsoletes RFC 6991.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc6991-bis-18"/>
        </reference>
        <referencegroup anchor="STD66" target="https://www.rfc-editor.org/info/std66">
          <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986">
            <front>
              <title>Uniform Resource Identifier (URI): Generic Syntax</title>
              <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
              <author fullname="R. Fielding" initials="R." surname="Fielding"/>
              <author fullname="L. Masinter" initials="L." surname="Masinter"/>
              <date month="January" year="2005"/>
              <abstract>
                <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="66"/>
            <seriesInfo name="RFC" value="3986"/>
            <seriesInfo name="DOI" value="10.17487/RFC3986"/>
          </reference>
        </referencegroup>
        <referencegroup anchor="STD63" target="https://www.rfc-editor.org/info/std63">
          <reference anchor="RFC3629" target="https://www.rfc-editor.org/info/rfc3629">
            <front>
              <title>UTF-8, a transformation format of ISO 10646</title>
              <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
              <date month="November" year="2003"/>
              <abstract>
                <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="63"/>
            <seriesInfo name="RFC" value="3629"/>
            <seriesInfo name="DOI" value="10.17487/RFC3629"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC3987">
          <front>
            <title>Internationalized Resource Identifiers (IRIs)</title>
            <author fullname="M. Duerst" initials="M." surname="Duerst"/>
            <author fullname="M. Suignard" initials="M." surname="Suignard"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>This document defines a new protocol element, the Internationalized Resource Identifier (IRI), as a complement of the Uniform Resource Identifier (URI). An IRI is a sequence of characters from the Universal Character Set (Unicode/ISO 10646). A mapping from IRIs to URIs is defined, which means that IRIs can be used instead of URIs, where appropriate, to identify resources.</t>
              <t>The approach of defining a new protocol element was chosen instead of extending or changing the definition of URIs. This was done in order to allow a clear distinction and to avoid incompatibilities with existing software. Guidelines are provided for the use and deployment of IRIs in various protocols, formats, and software components that currently deal with URIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3987"/>
          <seriesInfo name="DOI" value="10.17487/RFC3987"/>
        </reference>
        <referencegroup anchor="BCP35" target="https://www.rfc-editor.org/info/bcp35">
          <reference anchor="RFC7595" target="https://www.rfc-editor.org/info/rfc7595">
            <front>
              <title>Guidelines and Registration Procedures for URI Schemes</title>
              <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
              <author fullname="T. Hansen" initials="T." surname="Hansen"/>
              <author fullname="T. Hardie" initials="T." surname="Hardie"/>
              <date month="June" year="2015"/>
              <abstract>
                <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes. It obsoletes RFC 4395.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="35"/>
            <seriesInfo name="RFC" value="7595"/>
            <seriesInfo name="DOI" value="10.17487/RFC7595"/>
          </reference>
        </referencegroup>
        <reference anchor="IANA.uri-schemes" target="https://www.iana.org/assignments/uri-schemes">
          <front>
            <title>Uniform Resource Identifier (URI) Schemes</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <referencegroup anchor="BCP26" target="https://www.rfc-editor.org/info/bcp26">
          <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
            <front>
              <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
              <author fullname="M. Cotton" initials="M." surname="Cotton"/>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <author fullname="T. Narten" initials="T." surname="Narten"/>
              <date month="June" year="2017"/>
              <abstract>
                <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
                <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
                <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="26"/>
            <seriesInfo name="RFC" value="8126"/>
            <seriesInfo name="DOI" value="10.17487/RFC8126"/>
          </reference>
        </referencegroup>
        <reference anchor="IANA.media-type-sub-parameters" target="https://www.iana.org/assignments/media-type-sub-parameters">
          <front>
            <title>Media Type Sub-Parameter Registries</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC9237">
          <front>
            <title>An Authorization Information Format (AIF) for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Information about which entities are authorized to perform what operations on which constituents of other entities is a crucial component of producing an overall system that is secure. Conveying precise authorization information is especially critical in highly automated systems with large numbers of entities, such as the Internet of Things.</t>
              <t>This specification provides a generic information model and format for representing such authorization information, as well as two variants of a specific instantiation of that format for use with Representational State Transfer (REST) resources identified by URI path.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9237"/>
          <seriesInfo name="DOI" value="10.17487/RFC9237"/>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="Unicode" target="https://www.unicode.org/versions/Unicode13.0.0/">
          <front>
            <title>The Unicode Standard, Version 13.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-26-9"/>
          <annotation>RFC Editor: please replace with version current at publication (probably 17.0.0) and check whether D80, D120, and D92 are still pointing to the same definitions as in 13.0.0.</annotation>
        </reference>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <abstract>
                <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
            <front>
              <title>Key words for use in RFCs to Indicate Requirement Levels</title>
              <author fullname="S. Bradner" initials="S." surname="Bradner"/>
              <date month="March" year="1997"/>
              <abstract>
                <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
          </reference>
          <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
            <front>
              <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <date month="May" year="2017"/>
              <abstract>
                <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
          </reference>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3490">
          <front>
            <title>Internationalizing Domain Names in Applications (IDNA)</title>
            <author fullname="P. Faltstrom" initials="P." surname="Faltstrom"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="A. Costello" initials="A." surname="Costello"/>
            <date month="March" year="2003"/>
            <abstract>
              <t>Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. This document defines internationalized domain names (IDNs) and a mechanism called Internationalizing Domain Names in Applications (IDNA) for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3490"/>
          <seriesInfo name="DOI" value="10.17487/RFC3490"/>
        </reference>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="I-D.ietf-iotops-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in the standardization work for
   constrained-node networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-02"/>
        </reference>
        <referencegroup anchor="STD97" target="https://www.rfc-editor.org/info/std97">
          <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110">
            <front>
              <title>HTTP Semantics</title>
              <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
              <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
              <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
              <date month="June" year="2022"/>
              <abstract>
                <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
                <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="97"/>
            <seriesInfo name="RFC" value="9110"/>
            <seriesInfo name="DOI" value="10.17487/RFC9110"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC9164">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for IPv4 and IPv6 Addresses and Prefixes</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This specification defines two Concise Binary Object Representation (CBOR) tags for use with IPv6 and IPv4 addresses and prefixes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9164"/>
          <seriesInfo name="DOI" value="10.17487/RFC9164"/>
        </reference>
        <referencegroup anchor="BCP190" target="https://www.rfc-editor.org/info/bcp190">
          <reference anchor="RFC8820" target="https://www.rfc-editor.org/info/rfc8820">
            <front>
              <title>URI Design and Ownership</title>
              <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
              <date month="June" year="2020"/>
              <abstract>
                <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
                <t>This document provides guidance on the specification of URI substructure in standards.</t>
                <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="190"/>
            <seriesInfo name="RFC" value="8820"/>
            <seriesInfo name="DOI" value="10.17487/RFC8820"/>
          </reference>
        </referencegroup>
        <reference anchor="W3C.REC-html52-20171214" target="https://www.w3.org/TR/2017/REC-html52-20171214/">
          <front>
            <title>HTML 5.2</title>
            <author fullname="Alex Danilo" role="editor"/>
            <author fullname="Arron Eicholz" role="editor"/>
            <author fullname="Sangwhan Moon" role="editor"/>
            <author fullname="Steve Faulkner" role="editor"/>
            <author fullname="Travis Leithead" role="editor"/>
            <date day="14" month="December" year="2017"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-html52-20171214"/>
          <seriesInfo name="W3C" value="REC-html52-20171214"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="16" month="October" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -19
   // includes the definition of the cri'' application- extension. cri''
   // was previously defined in draft-ietf-core-href; however the latter
   // document overtook the present document in the approval process.
   // As the definition of cri'' is dependent on the present document
   // (and conversely has essentially no dependency on the technical
   // content of draft-ietf-core-href beyond its mere existence), the
   // text (including IANA considerations) has been moved here. -19 is
   // intended for use at the CBOR WG meeting at IETF 124.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-19"/>
        </reference>
        <reference anchor="RFC9844">
          <front>
            <title>Entering IPv6 Zone Identifiers in User Interfaces</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="August" year="2025"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined in the IPv6 Scoped Address Architecture specification (RFC 4007), should be entered into a user interface. This document obsoletes RFC 6874 and updates RFCs 4007, 7622, and 8089.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9844"/>
          <seriesInfo name="DOI" value="10.17487/RFC9844"/>
        </reference>
        <reference anchor="RFC6874">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined as in the IPv6 Scoped Address Architecture (RFC 4007), can be represented in a literal IPv6 address and in a Uniform Resource Identifier that includes such a literal address. It updates the URI Generic Syntax specification (RFC 3986) accordingly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6874"/>
          <seriesInfo name="DOI" value="10.17487/RFC6874"/>
        </reference>
        <reference anchor="I-D.schinazi-httpbis-link-local-uri-bcp">
          <front>
            <title>Best Practices for Link-Local Connectivity in URI-Based Protocols</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="22" month="February" year="2024"/>
            <abstract>
              <t>   Link-local IP connectivity allows hosts on the same network to
   communicate with each other without the need for centralized IP
   addressing infrastructure.  The IP prefixes 169.254.0.0/16 and
   fe80::/10 were reserved for this purpose.  However, both IP versions
   have limitations that make link-local addresses unideal for usage
   with URI-based protocols.  This document provides guidance for how
   best to enable link-local connectivity in such protocols.  This
   document also obsoletes RFC 6874, a previous attempt at solving this
   issue.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schinazi-httpbis-link-local-uri-bcp-03"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-packed">
          <front>
            <title>Packed CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mikolai Gütschow" initials="M." surname="Gütschow">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <date day="15" month="October" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949 == STD 94)
   is a data format whose design goals include the possibility of
   extremely small code size, fairly small message size, and
   extensibility without the need for version negotiation.

   CBOR does not provide any forms of data compression.  CBOR data
   items, in particular when generated from legacy data models, often
   allow considerable gains in compactness when applying data
   compression.  While traditional data compression techniques such as
   DEFLATE (RFC 1951) can work well for CBOR encoded data items, their
   disadvantage is that the recipient needs to decompress the compressed
   form before it can make use of the data.

   This specification describes Packed CBOR, a set of CBOR tags and
   simple values that enable a simple transformation of an original CBOR
   data item into a Packed CBOR data item that is almost as easy to
   consume as the original CBOR data item.  A separate decompression
   step is therefore often not required at the recipient.


   // (This cref will be removed by the RFC editor:) The present
   // revision -17 contains a number of editorial improvements, it is
   // intended for a brief discussion at the 2025-10-15 CBOR WG interim.
   // The wording of the present revision continues to make use of the
   // tunables A/B/C to be set to specific numbers before completing the
   // Packed CBOR specification; not all the examples may fully align
   // yet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-packed-17"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-notable-tags">
          <front>
            <title>Notable CBOR Tags</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="20" month="July" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949) is a data
   format whose design goals include the possibility of extremely small
   code size, fairly small message size, and extensibility without the
   need for version negotiation.

   In CBOR, one point of extensibility is the definition of CBOR tags.
   RFC 8949's original edition, RFC 7049, defined a basic set of 16 tags
   as well as a registry that can be used to contribute additional tag
   definitions [IANA.cbor-tags].  Since RFC 7049 was published, at the
   time of writing some 190 definitions of tags and ranges of tags have
   been added to that registry.

   The present document provides a roadmap to a large subset of these
   tag definitions.  Where applicable, it points to an IETF standards or
   standard development document that specifies the tag.  Where no such
   document exists, the intention is to collect specification
   information from the sources of the registrations.  After some more
   development, the present document is intended to be useful as a
   reference document for the IANA registrations of the CBOR tags the
   definitions of which have been collected.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-notable-tags-13"/>
        </reference>
        <reference anchor="RFC9170">
          <front>
            <title>Long-Term Viability of Protocol Extension Mechanisms</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The ability to change protocols depends on exercising the extension and version-negotiation mechanisms that support change. This document explores how regular use of new protocol features can ensure that it remains possible to deploy changes to a protocol. Examples are given where lack of use caused changes to be more difficult or costly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9170"/>
          <seriesInfo name="DOI" value="10.17487/RFC9170"/>
        </reference>
        <reference anchor="MNU">
          <front>
            <title>Modern Network Unicode</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="30" month="August" year="2025"/>
            <abstract>
              <t>   BCP18 (RFC 2277) has been the basis for the handling of character-
   shaped data in IETF specifications for more than a quarter of a
   century now.  It singles out UTF-8 (STD63, RFC 3629) as the “charset”
   that MUST be supported, and pulls in the Unicode standard with that.

   Based on this, RFC 5198 both defines common conventions for the use
   of Unicode in network protocols and caters for the specific
   requirements of the legacy protocol Telnet.  In applications that do
   not need Telnet compatibility, some of the decisions of RFC 5198 can
   be cumbersome.

   The present specification defines “Modern Network Unicode” (MNU),
   which is a form of RFC 5198 Network Unicode that can be used in
   specifications that require the exchange of plain text over networks
   and where just mandating UTF-8 may not be sufficient, but there is
   also no desire to import all of the baggage of RFC 5198.

   As characters are used in different environments, MNU is defined in a
   one-dimensional (1D) variant that is useful for identifiers and
   labels, but does not use a structure of text lines.  A 2D variant is
   defined for text that is a sequence of text lines, such as plain text
   documents or markdown format.  Additional variances of these two base
   formats can be used to tailor MNU to specific areas of application.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-dispatch-modern-network-unicode-07"/>
        </reference>
        <reference anchor="RFC6648">
          <front>
            <title>Deprecating the "X-" Prefix and Similar Constructs in Application Protocols</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2012"/>
            <abstract>
              <t>Historically, designers and implementers of application protocols have often distinguished between standardized and unstandardized parameters by prefixing the names of unstandardized parameters with the string "X-" or similar constructs. In practice, that convention causes more problems than it solves. Therefore, this document deprecates the convention for newly defined parameters with textual (as opposed to numerical) names in application protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="178"/>
          <seriesInfo name="RFC" value="6648"/>
          <seriesInfo name="DOI" value="10.17487/RFC6648"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC4180">
          <front>
            <title>Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
            <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv". This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4180"/>
          <seriesInfo name="DOI" value="10.17487/RFC4180"/>
        </reference>
      </references>
    </references>
    <?line 1915?>

<section anchor="the-small-print">
      <name>Examples of Corner Cases</name>
      <t>This appendix lists a few corner cases of URI semantics that
implementers of CRIs need to be aware of, but that are not
representative of the normal operation of CRIs.</t>
      <t>Additional test vectors may be available
through the CoRE WG Wiki, <eref target="https://wiki.ietf.org/group/core">https://wiki.ietf.org/group/core</eref>.</t>
      <ol spacing="normal" type="SP%d." group="SP" start="1"><li anchor="sp-leading-empty">
          <t>Initial (Lone/Leading) Empty Path Segments:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t><em>Lone empty path segments:</em>
  As per <xref target="STD66"/>, <tt>s://x</tt> is distinct from <tt>s://x/</tt> -- i.e., a URI
  with an empty path (<tt>[]</tt> in CRI) is different from one with a lone
  empty path segment (<tt>[""]</tt>).
  However, in HTTP and CoAP, they are implicitly aliased (for CoAP, in
  item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>).
  As per item 7 of <xref section="6.5" sectionFormat="of" target="RFC7252"/>, recomposition of a URI
  without Uri-Path Options from the other URI-related CoAP Options
  produces <tt>s://x/</tt>, not <tt>s://x</tt> -- CoAP prefers the lone empty path
  segment form.
  Similarly, after discussing HTTP semantics, Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> states:</t>
        </li>
      </ul>
      <blockquote>
        <t>In general, a URI that uses the generic syntax for authority with an
  empty path should be normalized to a path of "/".</t>
      </blockquote>
      <ul spacing="normal">
        <li>
          <t><em>Leading empty path segments without authority</em>:
  Somewhat related, note also that URIs and URI references that do not
  carry an authority cannot represent leading empty path segments
  (i.e., that are followed by further path segments): <tt>s://x//foo</tt>
  works, but in a <tt>s://foo</tt> URI or an (absolute-path) URI reference of
  the form <tt>//foo</tt> the double slash would be mis-parsed as leading in
  to an authority.</t>
        </li>
      </ul>
      <ol spacing="normal" type="SP%d." group="SP" start="2"><li anchor="sp-constraints">
          <t>Constraints (<xref target="constraints"/>) of CRIs/basic CRIs  </t>
          <t>
While most URIs in everyday use can be converted to CRIs and back to URIs
matching the input after syntax-based normalization of the URI,
these URIs illustrate the constraints by example:  </t>
          <ul spacing="normal">
            <li>
              <t><tt>https://host%ffname</tt>, <tt>https://example.com/x?data=%ff</tt>      </t>
              <t>
All URI components must, after percent decoding, be valid UTF-8 encoded text.
Bytes that are not valid UTF-8 show up, for example, in BitTorrent web seeds.
<!-- <https://www.bittorrent.org/beps/bep_0017.html>, not sure this warrants an informative reference -->      </t>
              <t>
These URIs can be expressed when using the <tt>text-or-pet</tt> feature.</t>
            </li>
            <li>
              <t><tt>https://example.com/component%3bone;component%3btwo</tt>, <tt>http://example.com/component%3dequals</tt>      </t>
              <t>
While delimiters can be used in an escaped and unescaped form in URIs with generally distinct meanings,
basic CRIs (i.e., without percent-encoded text <xref target="pet"/>) only support one escapable delimiter character per component,
which is the delimiter by which the component is split up in the CRI.      </t>
              <t>
Note that the separators <tt>.</tt> (for authority parts), <tt>/</tt> (for paths), <tt>&amp;</tt> (for query parameters)
are special in that they are syntactic delimiters of their
respective components in CRIs (note that <tt>.</tt> is doubly special
because it is not a <tt>reserved</tt> character in <xref target="STD66"/> and therefore
any percent-encoding would be normalized away).      </t>
              <t>
Thus, the following examples <em>are</em> convertible to basic CRIs without the <tt>text-or-pet</tt> feature:      </t>
              <t><tt>https://example.com/path%2fcomponent/second-component</tt>      </t>
              <t><tt>https://example.com/x?ampersand=%26&amp;questionmark=?</tt></t>
            </li>
            <li>
              <t><tt>https://alice@example.com/</tt>      </t>
              <t>
The user information can be expressed in CRIs if the "userinfo"
feature is present.  The URI <tt>https://@example.com</tt> is
represented as <tt>[-4, [false, "", "example", "com"]]</tt>; the <tt>false</tt>
serves as a marker that the next element is the userinfo.      </t>
              <t>
The rules explicitly cater for unencoded "<tt>:</tt>" in userinfo (without
needing the <tt>text-or-pet</tt> feature).
(This document includes this syntactic feature instead of
disabling it as a mechanism against potential uses of colons for
the deprecated inclusion of unencrypted secrets.)</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="sec-numbers" removeInRFC="true">
      <name>Mapping Scheme Numbers to Scheme Names</name>
      <t><cref anchor="replace-xxxx_2">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      <t><xref target="tab-numbers"/> defines the initial mapping from CRI scheme numbers to
URI scheme names.
Rows with URI scheme names hat have a registration in "Uniform
Resource Identifier (URI) Schemes" registry are used to populate the
new "CRI scheme numbers" column in that registry (<xref target="upd"/>).
Rows with URI scheme names hat do not have a registration in "Uniform
Resource Identifier (URI) Schemes" registry are used to populate the
"CRI Scheme Numbers for Certain Unregistered Scheme Names"
registry (<xref target="cri-reg"/>).</t>
      <table anchor="tab-numbers">
        <name>Mapping Scheme Numbers to Scheme Names</name>
        <thead>
          <tr>
            <th align="left">CRI scheme number</th>
            <th align="left">URI scheme name</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">coap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">coaps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">http</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">https</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">urn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">did</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6</td>
            <td align="left">coap+tcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7</td>
            <td align="left">coaps+tcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">24</td>
            <td align="left">coap+ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">25</td>
            <td align="left">coaps+ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1059</td>
            <td align="left">ms-gamingoverlay</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1165</td>
            <td align="left">snmp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1220</td>
            <td align="left">cast</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1242</td>
            <td align="left">openid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1273</td>
            <td align="left">hs20</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1319</td>
            <td align="left">z39.50</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1328</td>
            <td align="left">dweb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1466</td>
            <td align="left">psyc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1528</td>
            <td align="left">ms-people</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1560</td>
            <td align="left">ms-uup</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1562</td>
            <td align="left">ms-personacard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1578</td>
            <td align="left">jar</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1658</td>
            <td align="left">wpid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1762</td>
            <td align="left">payment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1895</td>
            <td align="left">news</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1905</td>
            <td align="left">irc6</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1926</td>
            <td align="left">turns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1946</td>
            <td align="left">data</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1982</td>
            <td align="left">ens</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2154</td>
            <td align="left">things</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2284</td>
            <td align="left">resource</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2326</td>
            <td align="left">skype</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2406</td>
            <td align="left">videotex</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2442</td>
            <td align="left">dpp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2747</td>
            <td align="left">upt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2754</td>
            <td align="left">platform</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2790</td>
            <td align="left">ed2k</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2796</td>
            <td align="left">taler</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2806</td>
            <td align="left">fm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2945</td>
            <td align="left">ms-newsandinterests</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3005</td>
            <td align="left">xmlrpc.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3018</td>
            <td align="left">ark</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3119</td>
            <td align="left">wss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3143</td>
            <td align="left">tel</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3255</td>
            <td align="left">vscode-insiders</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3342</td>
            <td align="left">geo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3348</td>
            <td align="left">rtmfp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3358</td>
            <td align="left">mtqp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3365</td>
            <td align="left">filesystem</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3375</td>
            <td align="left">teapots</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3503</td>
            <td align="left">proxy</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3524</td>
            <td align="left">sms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3634</td>
            <td align="left">jms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3646</td>
            <td align="left">mid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3690</td>
            <td align="left">ms-calculator</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3775</td>
            <td align="left">gitoid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3783</td>
            <td align="left">calculator</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3786</td>
            <td align="left">about</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3795</td>
            <td align="left">facetime</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3818</td>
            <td align="left">ari</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3837</td>
            <td align="left">ymsgr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3886</td>
            <td align="left">dict</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3906</td>
            <td align="left">ldaps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3920</td>
            <td align="left">rtmp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3959</td>
            <td align="left">ms-settings-proximity</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4053</td>
            <td align="left">fax</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4102</td>
            <td align="left">ms-drive-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4153</td>
            <td align="left">res</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4183</td>
            <td align="left">webcal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4193</td>
            <td align="left">embedded</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4315</td>
            <td align="left">xftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4327</td>
            <td align="left">browserext</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4355</td>
            <td align="left">session</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4373</td>
            <td align="left">dav</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4419</td>
            <td align="left">ipps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4515</td>
            <td align="left">uuid-in-package</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4549</td>
            <td align="left">dhttp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4559</td>
            <td align="left">web3</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4590</td>
            <td align="left">iris.lwz</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4598</td>
            <td align="left">diaspora</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4613</td>
            <td align="left">ms-widgets</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4619</td>
            <td align="left">rtsps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4674</td>
            <td align="left">beshare</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4709</td>
            <td align="left">gtalk</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4714</td>
            <td align="left">hxxps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4747</td>
            <td align="left">xrcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4882</td>
            <td align="left">sgn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4929</td>
            <td align="left">eid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4951</td>
            <td align="left">submit</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5099</td>
            <td align="left">ar</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5109</td>
            <td align="left">ms-settings-airplanemode</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5134</td>
            <td align="left">steam</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5150</td>
            <td align="left">adt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5152</td>
            <td align="left">ms-appinstaller</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5188</td>
            <td align="left">bb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5217</td>
            <td align="left">udp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5296</td>
            <td align="left">example</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5347</td>
            <td align="left">ms-remotedesktop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5410</td>
            <td align="left">ms-sttoverlay</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5425</td>
            <td align="left">irc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5472</td>
            <td align="left">sieve</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5477</td>
            <td align="left">machineProvisioningProgressReporter</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5480</td>
            <td align="left">lvlt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5492</td>
            <td align="left">sftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5536</td>
            <td align="left">ms-excel</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5557</td>
            <td align="left">dlna-playcontainer</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5705</td>
            <td align="left">go</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5717</td>
            <td align="left">fido</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5728</td>
            <td align="left">chrome</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5823</td>
            <td align="left">shc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5825</td>
            <td align="left">swidpath</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5883</td>
            <td align="left">microsoft.windows.camera.picker</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5990</td>
            <td align="left">crid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6007</td>
            <td align="left">at</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6024</td>
            <td align="left">hcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6030</td>
            <td align="left">content-type</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6109</td>
            <td align="left">jabber</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6144</td>
            <td align="left">dlna-playsingle</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6189</td>
            <td align="left">ms-spd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6341</td>
            <td align="left">opaquelocktoken</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6349</td>
            <td align="left">soldat</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6380</td>
            <td align="left">z39.50s</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6388</td>
            <td align="left">ms-media-stream-id</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6411</td>
            <td align="left">ms-mixedrealitycapture</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6462</td>
            <td align="left">quic-transport</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6503</td>
            <td align="left">ham</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6516</td>
            <td align="left">nfs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6609</td>
            <td align="left">ut2004</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6632</td>
            <td align="left">hydrazone</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6634</td>
            <td align="left">adiumxtra</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6651</td>
            <td align="left">tip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6658</td>
            <td align="left">lpa</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6730</td>
            <td align="left">cstr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6755</td>
            <td align="left">ms-settings-screenrotation</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6774</td>
            <td align="left">dab</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6792</td>
            <td align="left">ms-inputapp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6808</td>
            <td align="left">moz</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6840</td>
            <td align="left">acd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6863</td>
            <td align="left">ms-access</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6883</td>
            <td align="left">im</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6903</td>
            <td align="left">pttp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6924</td>
            <td align="left">teamspeak</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6992</td>
            <td align="left">payto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7074</td>
            <td align="left">secret-token</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7126</td>
            <td align="left">iax</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7225</td>
            <td align="left">isostore</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7226</td>
            <td align="left">bitcoincash</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7285</td>
            <td align="left">smb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7364</td>
            <td align="left">appdata</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7456</td>
            <td align="left">dtn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7520</td>
            <td align="left">feed</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7667</td>
            <td align="left">ssh</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7743</td>
            <td align="left">ms-transit-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7809</td>
            <td align="left">ms-help</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7812</td>
            <td align="left">vscode</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7856</td>
            <td align="left">apt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7868</td>
            <td align="left">ms-settings-notifications</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7874</td>
            <td align="left">shttp (OBSOLETE)</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7913</td>
            <td align="left">ethereum</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7923</td>
            <td align="left">tv</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7942</td>
            <td align="left">microsoft.windows.camera.multipicker</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8041</td>
            <td align="left">msnim</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8085</td>
            <td align="left">ms-remotedesktop-launch</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8093</td>
            <td align="left">spiffe</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8099</td>
            <td align="left">redis</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8159</td>
            <td align="left">z39.50r</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8251</td>
            <td align="left">brid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8300</td>
            <td align="left">tftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8387</td>
            <td align="left">content</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8454</td>
            <td align="left">wais</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8506</td>
            <td align="left">view-source</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8519</td>
            <td align="left">soap.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8577</td>
            <td align="left">attachment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8601</td>
            <td align="left">gopher</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8687</td>
            <td align="left">ircs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8713</td>
            <td align="left">callto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8765</td>
            <td align="left">bolo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8766</td>
            <td align="left">notes</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8775</td>
            <td align="left">ipn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8830</td>
            <td align="left">ms-infopath</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9075</td>
            <td align="left">ms-settings</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9136</td>
            <td align="left">ms-useractivityset</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9154</td>
            <td align="left">modem</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9186</td>
            <td align="left">bitcoin</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9198</td>
            <td align="left">ms-settings-privacy</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9204</td>
            <td align="left">cap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9278</td>
            <td align="left">com-eventbrite-attendee</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9312</td>
            <td align="left">pkcs11</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9318</td>
            <td align="left">ipp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9338</td>
            <td align="left">rediss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9444</td>
            <td align="left">grd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9453</td>
            <td align="left">ms-screensketch</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9487</td>
            <td align="left">matrix</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9520</td>
            <td align="left">xcon-userid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9535</td>
            <td align="left">sips</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9544</td>
            <td align="left">simpleledger</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9585</td>
            <td align="left">mvn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9770</td>
            <td align="left">keyparc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9805</td>
            <td align="left">magnet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9816</td>
            <td align="left">vsls</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9859</td>
            <td align="left">drm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9875</td>
            <td align="left">hcap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9910</td>
            <td align="left">wtai</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9965</td>
            <td align="left">num</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9981</td>
            <td align="left">ms-settings-language</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10024</td>
            <td align="left">bl</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10119</td>
            <td align="left">imap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10147</td>
            <td align="left">query</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10176</td>
            <td align="left">ves</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10183</td>
            <td align="left">ms-recall</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10196</td>
            <td align="left">acr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10225</td>
            <td align="left">barion</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10229</td>
            <td align="left">acct</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10238</td>
            <td align="left">palm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10241</td>
            <td align="left">ocf</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10247</td>
            <td align="left">lid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10317</td>
            <td align="left">h323</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10327</td>
            <td align="left">aim</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10333</td>
            <td align="left">turn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10361</td>
            <td align="left">ms-stickers</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10373</td>
            <td align="left">ms-settings-location</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10380</td>
            <td align="left">dvb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10467</td>
            <td align="left">xcon</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10518</td>
            <td align="left">ms-screenclip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10551</td>
            <td align="left">pop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10583</td>
            <td align="left">dat</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10591</td>
            <td align="left">ms-settings-nfctransactions</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10640</td>
            <td align="left">ms-settings-cloudstorage</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10687</td>
            <td align="left">afs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10740</td>
            <td align="left">mqtt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10744</td>
            <td align="left">gizmoproject</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10831</td>
            <td align="left">amss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10868</td>
            <td align="left">mailserver</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10926</td>
            <td align="left">ni</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10995</td>
            <td align="left">telnet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11055</td>
            <td align="left">gg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11060</td>
            <td align="left">blob</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11072</td>
            <td align="left">ms-settings-emailandaccounts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11130</td>
            <td align="left">ms-project</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11255</td>
            <td align="left">xri</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11315</td>
            <td align="left">msrp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11351</td>
            <td align="left">ms-settings-connectabledevices</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11393</td>
            <td align="left">cabal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11428</td>
            <td align="left">nih</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11467</td>
            <td align="left">ms-whiteboard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11533</td>
            <td align="left">smp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11537</td>
            <td align="left">vnc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11583</td>
            <td align="left">graph</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11645</td>
            <td align="left">dvx</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11718</td>
            <td align="left">lorawan</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11742</td>
            <td align="left">lastfm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11799</td>
            <td align="left">w3</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11804</td>
            <td align="left">mumble</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11820</td>
            <td align="left">thzp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11824</td>
            <td align="left">feedready</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11857</td>
            <td align="left">microsoft.windows.camera</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11892</td>
            <td align="left">wcr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11945</td>
            <td align="left">ms-mobileplans</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11950</td>
            <td align="left">ms-settings-lock</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11962</td>
            <td align="left">ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11999</td>
            <td align="left">rtspu</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12029</td>
            <td align="left">ms-settings-displays-topology</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12052</td>
            <td align="left">bluetooth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12068</td>
            <td align="left">file</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12102</td>
            <td align="left">mailto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12174</td>
            <td align="left">ms-launchremotedesktop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12237</td>
            <td align="left">ilstring</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12242</td>
            <td align="left">cvs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12337</td>
            <td align="left">mms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12400</td>
            <td align="left">ssb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12422</td>
            <td align="left">iris.xpc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12458</td>
            <td align="left">starknet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12478</td>
            <td align="left">qb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12493</td>
            <td align="left">mss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12502</td>
            <td align="left">ventrilo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12525</td>
            <td align="left">ms-lockscreencomponent-config</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12566</td>
            <td align="left">icap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12569</td>
            <td align="left">mupdate</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12599</td>
            <td align="left">paparazzi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12603</td>
            <td align="left">ms-widgetboard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12634</td>
            <td align="left">fish</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12644</td>
            <td align="left">sip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12699</td>
            <td align="left">mt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12705</td>
            <td align="left">acap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12718</td>
            <td align="left">casts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12726</td>
            <td align="left">reload</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12732</td>
            <td align="left">spotify</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12806</td>
            <td align="left">fuchsia-pkg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12823</td>
            <td align="left">ms-gamebarservices</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12876</td>
            <td align="left">hyper</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12932</td>
            <td align="left">dns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13014</td>
            <td align="left">doi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13026</td>
            <td align="left">ms-settings-power</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13062</td>
            <td align="left">mtrust</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13068</td>
            <td align="left">git</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13094</td>
            <td align="left">openpgp4fpr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13098</td>
            <td align="left">ms-secondary-screen-controller</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13228</td>
            <td align="left">mvrps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13285</td>
            <td align="left">snews</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13340</td>
            <td align="left">smtp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13348</td>
            <td align="left">pack</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13362</td>
            <td align="left">teliaeid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13372</td>
            <td align="left">mongodb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13404</td>
            <td align="left">afp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13440</td>
            <td align="left">msrps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13442</td>
            <td align="left">ldap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13451</td>
            <td align="left">mvrp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13499</td>
            <td align="left">nntp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13608</td>
            <td align="left">onenote</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13650</td>
            <td align="left">sarif</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13680</td>
            <td align="left">elsi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13829</td>
            <td align="left">otpauth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13846</td>
            <td align="left">info</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13862</td>
            <td align="left">aaa</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13923</td>
            <td align="left">svn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13986</td>
            <td align="left">iris</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14010</td>
            <td align="left">lbry</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14034</td>
            <td align="left">ms-search</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14090</td>
            <td align="left">ms-browser-extension</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14153</td>
            <td align="left">maps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14162</td>
            <td align="left">swid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14168</td>
            <td align="left">ms-officeapp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14180</td>
            <td align="left">ms-settings-bluetooth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14310</td>
            <td align="left">ms-enrollment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14347</td>
            <td align="left">dntp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14364</td>
            <td align="left">ms-walk-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14366</td>
            <td align="left">ms-getoffice</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14367</td>
            <td align="left">thismessage</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14460</td>
            <td align="left">message</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14477</td>
            <td align="left">prospero</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14526</td>
            <td align="left">aaas</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14595</td>
            <td align="left">market</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14627</td>
            <td align="left">stun</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14667</td>
            <td align="left">chrome-extension</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14709</td>
            <td align="left">wasm-js</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14830</td>
            <td align="left">itms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14860</td>
            <td align="left">ms-whiteboard-cmd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14867</td>
            <td align="left">wifi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14868</td>
            <td align="left">icon</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14878</td>
            <td align="left">ftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14901</td>
            <td align="left">stuns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14906</td>
            <td align="left">mqtts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14936</td>
            <td align="left">ms-settings-workplace</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14962</td>
            <td align="left">tn3270</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14972</td>
            <td align="left">pres</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14982</td>
            <td align="left">p1</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15026</td>
            <td align="left">teapot</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15061</td>
            <td align="left">android</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15118</td>
            <td align="left">simplex</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15163</td>
            <td align="left">ms-visio</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15202</td>
            <td align="left">cid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15206</td>
            <td align="left">unreal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15230</td>
            <td align="left">tool</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15254</td>
            <td align="left">ms-secondary-screen-setup</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15267</td>
            <td align="left">rtsp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15306</td>
            <td align="left">xfire</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15358</td>
            <td align="left">xmpp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15361</td>
            <td align="left">ms-settings-cellular</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15461</td>
            <td align="left">shelter</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15579</td>
            <td align="left">v-event</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15639</td>
            <td align="left">iris.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15641</td>
            <td align="left">wyciwyg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15645</td>
            <td align="left">ms-meetnow</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15679</td>
            <td align="left">ms-search-repair</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15741</td>
            <td align="left">wasm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15773</td>
            <td align="left">ms-settings-camera</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15776</td>
            <td align="left">ms-virtualtouchpad</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15805</td>
            <td align="left">xmlrpc.beeps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15972</td>
            <td align="left">ipfs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15994</td>
            <td align="left">ms-settings-wifi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16051</td>
            <td align="left">aw</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16069</td>
            <td align="left">first-run-pen-experience</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16079</td>
            <td align="left">oid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16134</td>
            <td align="left">iris.xpcs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16138</td>
            <td align="left">drop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16194</td>
            <td align="left">ms-publisher</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16281</td>
            <td align="left">leaptofrogans</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16292</td>
            <td align="left">rmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16300</td>
            <td align="left">soap.beeps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16377</td>
            <td align="left">tag</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16585</td>
            <td align="left">ms-word</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16632</td>
            <td align="left">onenote-cmd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16645</td>
            <td align="left">ms-powerpoint</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16728</td>
            <td align="left">hxxp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16729</td>
            <td align="left">secondlife</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16884</td>
            <td align="left">rsync</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16918</td>
            <td align="left">vemmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16933</td>
            <td align="left">ipns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17039</td>
            <td align="left">swh</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17068</td>
            <td align="left">pwid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17097</td>
            <td align="left">dtmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17134</td>
            <td align="left">dis</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17170</td>
            <td align="left">iotdisco</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17175</td>
            <td align="left">ms-restoretabcompanion</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17264</td>
            <td align="left">service</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17315</td>
            <td align="left">finger</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17361</td>
            <td align="left">web+ap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17381</td>
            <td align="left">ms-eyecontrolspeech</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
        </tbody>
      </table>
      <t>The assignments from this table can be extracted from the XML form of
this document (when stored in a file "this.xml") into CSV form
<xref target="RFC4180"/> using this short Ruby program:</t>
      <sourcecode type="ruby"><![CDATA[
require 'rexml/document'; include REXML
XPath.each(Document.new(File.read("this.xml")),"/rfc/back//tr") {|r|
  puts XPath.each(r,"td").map{|d|d.text()}[0..1].join(",")}
]]></sourcecode>
    </section>
    <section removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <t>Changes from -16 to -17</t>
      <t>(Provisional integration of active PRs, please see github.)</t>
      <t>Changes from -15 to -16</t>
      <ul spacing="normal">
        <li>
          <t>Add note that CRI Scheme Number registrations are oblivious of the
actual URI Scheme registrations (if any).</t>
        </li>
        <li>
          <t>Add information about how this RFC updates <xref target="RFC7595"/> to abstract and
introduction.</t>
        </li>
      </ul>
      <t>Changes from -14 to -15</t>
      <ul spacing="normal">
        <li>
          <t>Make scheme numbers unsigned and map them to negative numbers used
as scheme-id values</t>
        </li>
      </ul>
      <t>Changes from -09 to -14</t>
      <ul spacing="normal">
        <li>
          <t>Editorial changes; move some examples to <xref target="the-small-print"/>, break up
railroad diagram; mention commonalities with (and tiny difference
from) CoAP Options; mention failure of percent-encoding for dots in
host-name components</t>
        </li>
        <li>
          <t>Explicitly mention invalid case in <xref target="naked-rootless"/> (rootless CRIs without
authority that do not have a path component)</t>
        </li>
        <li>
          <t>Generalize <xref target="extending"/>, discuss PET (percent-encoded text) extension in more detail</t>
        </li>
        <li>
          <t>Add registry of URI scheme numbers (<xref target="sec-numbers"/>, <xref target="iana-considerations"/>)</t>
        </li>
        <li>
          <t>Add user information to the authority ("userinfo" feature)</t>
        </li>
        <li>
          <t><xref target="cddl"/>: Use separate rule for CRI, allow <tt>[]</tt> for query in CRI
Reference; generalize scheme numbers, add userinfo; add list of
additional requirements in prose (<xref target="prose"/>)</t>
        </li>
        <li>
          <t>Discuss <xref format="title" target="unprocessable"/> (<xref target="unprocessable"/>)</t>
        </li>
        <li>
          <t>Conversion to URI: Handle <tt>:</tt> in first pathname component of a
CRI-Reference (<xref target="colon"/>)</t>
        </li>
        <li>
          <t>Add Christian Amsüss as contributor</t>
        </li>
        <li>
          <t>Add CBOR EDN application-extension "<tt>cri</tt>" (since moved to the EDN spec)</t>
        </li>
        <li>
          <t>Add Section on CoAP integration (and new CoAP Options Proxy-Cri and
Proxy-Scheme-Number).</t>
        </li>
      </ul>
      <t>Changes from -08 to -09</t>
      <ul spacing="normal">
        <li>
          <t>Identify more esoteric features with a CDDL ".feature".</t>
        </li>
        <li>
          <t>Clarify that well-formedness requires removing trailing nulls.</t>
        </li>
        <li>
          <t>Fragments can contain PET.</t>
        </li>
        <li>
          <t>Percent-encoded text in PET is treated as byte strings.</t>
        </li>
        <li>
          <t>URIs with an authority but a completely empty path (e.g.,
<tt>http://example.com</tt>): CRIs with an authority component no longer
always produce at least a slash in the path component.  </t>
          <t>
For generic schemes, the conversion of <tt>scheme://example.com</tt> to a
CRI is now possible
because CRI produces a URI with an authority not followed by a slash
following the updated rules of <xref target="cri-to-uri"/>.
Schemes like http and coap do not distinguish between the empty path
and the path containing a single slash when an authority is set (as
recommended in <xref target="STD66"/>).
For these schemes, that equivalence allows implementations to
convert the just-a-slash URI to a CRI with a zero length path array
(which, however, when converted back, does not produce a slash after
the authority).  </t>
          <t>
(Add an appendix "the small print" for more detailed discussion of
pesky corner cases like this.)</t>
        </li>
      </ul>
      <t>Changes from -07 to -08</t>
      <ul spacing="normal">
        <li>
          <t>Fix the encoding of NOAUTH-NOSLASH / NOAUTH-LEADINGSLASH</t>
        </li>
        <li>
          <t>Add URN and DID schemes, add example.</t>
        </li>
        <li>
          <t>Add PET</t>
        </li>
        <li>
          <t>Remove hopeless attempt to encode "remote trailing nulls" rule in
CDDL (which is not a transformation language).</t>
        </li>
      </ul>
      <t>Changes from -06 to -07</t>
      <ul spacing="normal">
        <li>
          <t>More explicitly discuss constraints (<xref target="constraints"/>), add examples (<xref target="sp-constraints"/>).</t>
        </li>
        <li>
          <t>Make CDDL more explicit about special simple values.</t>
        </li>
        <li>
          <t>Lots of gratuitous changes from XML2RFC redefinition of <tt>&lt;tt&gt;</tt>
semantics.</t>
        </li>
      </ul>
      <t>Changes from -05 to -06</t>
      <ul spacing="normal">
        <li>
          <t>rework authority:
          </t>
          <ul spacing="normal">
            <li>
              <t>split reg-names at dots;</t>
            </li>
            <li>
              <t>add optional zone identifiers <xref target="RFC4007"/> to IP addresses</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Changes from -04 to -05</t>
      <ul spacing="normal">
        <li>
          <t>Simplify CBOR structure.</t>
        </li>
        <li>
          <t>Add implementation status section.</t>
        </li>
      </ul>
      <t>Changes from -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>Minor editorial improvements.</t>
        </li>
        <li>
          <t>Renamed path.type/path-type to discard.</t>
        </li>
        <li>
          <t>Renamed option to section, substructured into items.</t>
        </li>
        <li>
          <t>Simplified the table "resolution-variables".</t>
        </li>
        <li>
          <t>Use the CBOR structure inspired by Jim Schaad's proposals.</t>
        </li>
      </ul>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Expanded the set of supported schemes (#3).</t>
        </li>
        <li>
          <t>Specified creation, normalization and comparison (#9).</t>
        </li>
        <li>
          <t>Clarified the default value of the <tt>path.type</tt> option (#33).</t>
        </li>
        <li>
          <t>Removed the <tt>append-relation</tt> path.type option (#41).</t>
        </li>
        <li>
          <t>Renumbered the remaining path.types.</t>
        </li>
        <li>
          <t>Renumbered the option numbers.</t>
        </li>
        <li>
          <t>Restructured the document.</t>
        </li>
        <li>
          <t>Minor editorial improvements.</t>
        </li>
      </ul>
      <t>Changes from -01 to -02:</t>
      <ul spacing="normal">
        <li>
          <t>Changed the syntax of schemes to exclude upper case characters (#13).</t>
        </li>
        <li>
          <t>Minor editorial improvements (#34 #37).</t>
        </li>
      </ul>
      <t>Changes from -00 to -01:</t>
      <ul spacing="normal">
        <li>
          <t>None.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>CRIs were developed by <contact fullname="Klaus Hartke"/> for use in the Constrained
RESTful Application Language (CoRAL).
The current author team is completing this work with a view to achieve
good integration with the potential use cases, both inside and outside of CoRAL.</t>
      <t>Thanks to
<contact fullname="Christian Amsüss"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="Ari Keränen"/>,
<contact fullname="Jim Schaad"/>,
<contact fullname="Dave Thaler"/>,
and
<contact fullname="Marco Tiloca"/>
for helpful comments and discussions that have shaped the
document, as well as to the reviewers
<contact fullname="Mike Bishop"/>
and
<contact fullname="Arnt Gulbrandsen"/>
that added useful perspective during the IESG stage.</t>
      <!--  LocalWords:  CRI normalizations dereferencing dereference CRIs
 -->
<!--  LocalWords:  untrusted subcomponent
 -->

</section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="K." surname="Hartke" fullname="Klaus Hartke">
        <organization>Ericsson</organization>
        <address>
          <postal>
            <street>Torshamnsgatan 23</street>
            <city>Stockholm</city>
            <code>16483</code>
            <country>Sweden</country>
          </postal>
          <email>klaus.hartke@ericsson.com</email>
        </address>
      </contact>
      <contact initials="C." surname="Amsüss" fullname="Christian Amsüss">
        <organization/>
        <address>
          <postal>
            <country>Austria</country>
          </postal>
          <email>christian@amsuess.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
RLx9GQ0u8sseWet5mIuJ5efJdKq25LWvf6zU8fFveDna89joVNQWoiyKCqsb
ajTPurULu2NtKq1WFUbyeAt+hD2yzyXiICjRFoduXtB8xRAFUjQld1GlxwpT
OLnlDK72Mk2uWqMuYrZ0WBzhkOIy/Ww3eKhuvqD7lNCJWhsqW1bNto+il0lE
h7D4x3Z5CN7Hvk3zsW+WoW9JtyEk7UWugQ8JKvYEKKS9zTwOn6P0pefAN0/W
PV5VhhkMGdFtVSvPKo6Wh5fSWMoTOUoVYoJ92NZa2mMp6vL16PU5aKnDUdgz
248Uu1RScS6MWmJuHSzRWAnQVdluVNVBsyuzOCpf6sCwgfKuhQRL3Hwv7OGR
mySpAjZJkS6pw7waxqgtNs2i+lH1GbmNhRKFGKUkTaRSErc+BsVueVobNWEG
kIziet8YN+9lWlnVHgV9W/GQLyrp95I7ycZfvZwkhGLsCt5umpeMuUN+3oOH
V5+juVjbLM03MJsouPbk+mW9rqGnkm23HVXRDgY7lQUFxxiFx7h+hSaqrzFY
oUQihPV3qVRXQzPui+vfynEeprxb5pmjSs37wF3PW5AEp6ewN+MlVaWePnvY
ROWojsqVbAMZXK1dGeOSnx+HnRUoewyThgsuXlVxLWc0j+HrXMQ8+9R0cu8z
DmHh7DIOOHN44yetgTSrDNL34N3HHqnpstZoYwd8rdoHXVU+dcZjbiMGE7Lb
2LBzolvTS6mQBEm+2MHPVae3nRvLVBpA3zxaZXIeqJGjEVVs0hhzLOUfSedo
MQyr65j2hF5iF6lLRmkJs9eo+xJjG1gpCJdlExKoQcA8aBNq242d1AyO9Y6f
bKqPp2yb1hYX5Mo1q4xT/cOqHDIOc8eLVApkLZQYIoqvEI29wpVCBT0ZgZaZ
SMoCblkrx8cVEiVBSn9ALLnCffjaphIukoRT8bgZiyd6ucybwA86wUWzzsu3
nru1ei/qiKmRctLEpFvWWo+I4zs05faNUd0TbSmS9I2mnwBTOu2AQvLnPcU7
rVwmJfLsT+my9HVDLgoaRE/4WWCUL44uDm66KkeYSMPEFBYsHesw3ZIdHl7q
Bsdz8FBt+KpfNZYqJvNDQT1YKNVJFR5fa8k+lt6xC7jdoO1oOwDjl8Ph0Im7
3CJksFrA6gnEtp+A55gyTccUS/DWrUUVMM7aNlM7Puy4uIz/svLrINiwZZum
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
B3hM8WAmCjpZ9yOvp3xQIVy6L3U7o8OgqyI7i400f75zLlDtJtiSnecaaW7w
KBjRAsm2rQXA5IhCCm3zp7oPt5IaVDEdLoCrnfaOdRLO2X6aaDsESd0KcJK9
5rLSyAHGWhKLKp3R96POMNgrSdts8vU2oRY0GhChVokzoUWFK88iwI6CBnWi
IYS7dbtI5l6wlFr+MhFsUCWCIW317Es/zaC9/TIDsmP79WHoqT+mtTcMeYpD
zJLMUxM1e+LpqXindwfwHej9/pfGU0/Ve0UYyVWCKRi8dydM/WTq8GKmvsn1
/22Q3gM/tV1IgxR/16R/Yvy87rKvfhctlknVqpGaNpoRav6i1FC1zq76hCSI
hCHxHGlmFd3G1CpdsydUgeh3AlAb5xTBTqVyIxACYzRXoqT6LfYaxFSn0HWH
ia/9ls85xCxs9Y3au1dGj97HbblTaTbFpe8lpISq+NI8L16fsq2YZnCFnqTV
wGRVsfKhbP0sPzo9PhEReYoW/qC5kpoMIxBZ4nKSsr2Qe3WtNG7Sk41bJb1B
yswe5zmlfImMyPRCTySloLUFEW2/xWU5yZeWoojRMQy48PIClDtmXNpTSRlH
Z9lYBNK9cRptkDg030bv/6vsboBn9AFr+wQfHNKIl1OQ8YtvCPGSw+iUvHak
CMN18N1N8Ofe04NNtZWIJg8vF2D3kWB40WPkr9CoC/GUkT2kpIu2i1NlU9cw
gzQ1FBhlPobsO/SLVauMigRKl0R0XGT/8a//m0ba2ePuUiikCBwUeYdvkdw8
jHOycSKhVd2LEh0X+ack43efeGWZrEXVbsmbQ1/lnVtz93DHOBGR/C7hyvl9
Eiv4RCw67W+o8rzPjZAA9J+SZClKClAC0hzwzkaPhAlbkZzJveVlcY1Ne6Su
lv4RK/2XwrOuuXDn5M3lbjydooG9I/T15M1gjs1Z43mHYnH8a7dzR5leu2ap
JjJIy3KV6JIpMERLDMsTZMSi39F3zhruO65tzFE/SB8+R4AqgNnXomRPVgXG
J8yv6alMSAxlWiG1rSXUduXIL7F4uKldT6ljnwIhtguZT1HlI/p9FeXjMseO
9RKxow+tYLvPmK64usyh57cM06V0JD5DoGKgkPclWJH15QleBV0hOHoDxpIO
7/z/sQLU6j7EsUuLVu4BzSI5eRPJkbu6AyI15CspYw1zgJg0W80l5jeAUXTF
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
wXcv3nCgM9VXqKdJt05umqez8hs9X2GxHPtMaM7m/Cw8IuO/reAvGiXDbBVT
Prb6a4w1aNNNvxaih1XC2JGlMUGOsyaZTWH3bdbD2oVFqaFUEZp9TFzc06vh
EvZKKo3kTvlpzCX6+q8yNrtJ/MCC77X50pwj+lKfoNai765Wfdysr/6zCfMh
QvmftT23Jc+Va57bl+d+X02W9z33ROfzHmx5bntX57tyb257bs/O5x78Qq0T
HEi1ecLPck4tLbP0fIIOWbfS9OOFl9gfR2894qjZrB7t1SoeN49qdJaKPJ2R
7IxlA5C7UgP62LtJNcKNr/i3/zkp0n/7P6Ou7V8WRbX7Z0lo+y1n133Mday4
CIyNQOa1SMifFlrLIqxgVY8CeVekgx+xvTTOg3+8gRvc59+snQT/+geylSgc
OLuFa/Ba9o5TyPpJT6gwFANj87gUsBhFvUoLTNmwyhl20OODICFH1AX2CngH
wCEZCkjnLnBlpvzUO2nplF2bNr2wXI1pbFdrOFo6Qx9TTKGoEcpauKTXFucc
6BFqBq6tYtdnooMTtI7fxnNCYomFWr2oS8yaEtSr0wQufWDkJgQVELT8WPAF
UZxnXJ3BTS6B2FpmQQpY2IIR9CNkyQaGwfLnIJziLvnMkSLT6fqT0yK5+Bz+
eE/qR63QkO/ewhTcfE6tTdjq5DIu0jhzV9BjCFw2XCuoyiw1mDGsd1x+iJwX
3CwvHq4WU6edEO4/wF03KSVF+tPkAWIEqepaszqhmHNes9w+QW+6bPNEQuaZ
bMB6GenHnlLJ90Nn8eKULsIMfasfYCK+S7fnbeDP120jXY6krKrWX9Z5cBJP
AmF3tVVFyug+uUXn0MFdlV9sdhkatdBs5TlS0JfLnvKxmhl1GuqDG5HlLfLT
ewm7CFE1VbxnUfAXyXfwipx6x1U/p35wUDrHPecVlITgqNBaCFc7IKUBO7cX
JZGilqZ7SxH3SbAOCzZytVP5Na+4Y20rJWfTRnseTnNWXpAHRx66OsUb20Sy
jIDxb/8TR8ID43BB/kzflM1mJQSdwINYm80HjgrrJI0KtdIsFr7+vKF9pdIy
i7V/ABZise87ERKft2QrRAHkjQ+8qvpeXsyTZulKATUlftx177SBkK4mLCEj
tmd+SM1zdBhsQWSMz5heJEt36b0AY+smUUOScFJYPqwMVuHXXWmjXigk/A2o
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

-->

</rfc>
