<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-uri-path-abbrev-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="Uri-Path-Abbrev">URI-Path abbreviation in CoAP</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-uri-path-abbrev-01"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2025" month="September" day="26"/>
    <workgroup>CoRE</workgroup>
    <keyword>coap</keyword>
    <abstract>
      <?line 38?>

<t>Applications built on CoAP face a conflict between the technical need for short message sizes
and the interoperability requirement of following BCP190
and thus registering (relatively verbose) well-known URI paths.
This document introduces an option that allows expressing well-known paths in as little as two bytes.</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-uri-path-abbrev/"/>.
      </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/uri-path-abbrev"/>.</t>
    </note>
  </front>
  <middle>
    <?line 45?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>When building application components on CoAP (<xref target="RFC7252"/>),
sending small messages is a general goal in the ecosystem
(i.e., constrained environments, where data rates are limited and large packets can lead to packet loss, see <xref target="RFC7228"/>).
While CoAP can operate with a wide range of URIs,
short path names are therefore favored.</t>
      <t>Those short path names need to be discovered, and <xref target="RFC7252"/> and <xref target="RFC6690"/> provide mechanisms for that.
Applications that can not discover such paths because they precede a discovery step,
such as the discovery itself, setting up a security context (<xref target="RFC9528"/>) or establishing an initial identity (<xref target="RFC9148"/>)
can not rely on discovered short paths,
and need to use well-known paths.
The best practice established in <xref target="BCP190"/>
requires applications to use the prefix ".well-known" for their paths,
making the combined paths easily longer than the rest of the CoAP message.</t>
      <t>This document establishes a CoAP option
that allows abbreviating the path component of the request URI through a numeric registry.</t>
      <section anchor="motivating-example">
        <name>Motivating example</name>
        <t>The design criteria for <xref target="RFC9528"/> described in <xref section="2.11" sectionFormat="of" target="I-D.ietf-lake-reqs-04"/>
give a fragmentation limit of 47 bytes CoAP message payload for 6TiSCH and 51 bytes for some parameters (and implementations) of LoRaWAN,
and high performance penalties of not fitting in those frames.
An EDHOC message 1 on its own carries a minimum of 37 bytes.
The 18 bytes of an encoded "/.well-known/edhoc" path push the size over either limit,
whereas an equivalent Uri-Path-Abbrev stays well below the limit.</t>
      </section>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>This document assumes basic familiarity with CoAP (<xref target="RFC7252"/>),
in particular its Uri-* options.</t>
      </section>
    </section>
    <section anchor="the-uri-path-abbrev-option">
      <name>The Uri-Path-Abbrev option</name>
      <t>The Uri-Path-Abbrev option (short for "URI path, abbreviated") expresses a request's URI path in a more compact form.</t>
      <t>The Uri-Path-Abbrev value represents a particular path,
and is thus equivalent to any number of Uri-Path options.
Those paths are typically in a "/.well-known" location as described in <xref target="RFC8615"/>.
The numeric option values are coordinated by IANA in the Uri-Path-Abbrev registry established in this document in <xref target="iana-reg"/>.</t>
      <table anchor="option-table">
        <name>Uri-Path-Abbrev Option Summary (C = Critical, U = Unsafe, N = NoCacheKey, R = Repeatable)</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">Len.</th>
            <th align="left">Default</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CPA13</td>
            <td align="left">x</td>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Uri-Path-Abbrev</td>
            <td align="left">uint</td>
            <td align="left">0-4</td>
            <td align="left">(none)</td>
          </tr>
        </tbody>
      </table>
      <t><cref anchor="cpa">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in <xref target="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>The option is a critical, safe-to-forward, and part of the cache key,
and used in CoAP requests.
<xref target="option-table"/> summarizes these, extending Table 4 of <xref target="RFC7252"/>).
Its OSCORE treatment is as Class E (<xref target="RFC8613"/>).</t>
      <t>The option has an integer value
from the registry established in <xref target="iana-reg"/>.</t>
      <t>Apart from the format and repeatability,
the option's properties only deviate from the Uri-Path (for which it stands in)
in that this option is safe to forward.
This has consequences for the interactions with the Proxy-URI option,
but is generally desirable:
It allows the option to be used with proxies that do not implement the option.</t>
      <section anchor="server-processing">
        <name>Server processing</name>
        <t>A server receiving this option process it like the equivalent sequence of Uri-Path options.</t>
        <t>A server that supports a Uri-Path-Abbrev value
<bcp14>MUST</bcp14> also support the equivalent request composed of Uri-Path components.</t>
        <t>A server receiving the option with an unknown value <bcp14>MUST</bcp14> treat it as an unprocessable critical option,
returning 4.02 Bad Option
and <bcp14>MUST NOT</bcp14> return a 4.04 Not Found response,
because the equivalent path may be present on the server.</t>
      </section>
      <section anchor="client-processing">
        <name>Client processing</name>
        <t>A client may use the option instead of the Uri-Path option if there is a suitable value that can express the requested path.</t>
        <t>Unless the client can be assured that the server supports it
(e.g. because the specification describing the interaction mandates support for the option in the server)
it <bcp14>SHOULD</bcp14> fall back to sending the path explicitly if it receives an error indicating that the option was not understood
(otherwise, it would have limited interoperability).</t>
        <t>A generic client implementation <bcp14>SHOULD NOT</bcp14> apply this optimization
without explicit instructions from a higher layer or the known specification of the numeric value:
In general, it is too unlikely that the Uri-Path-Abbrev value is understood by any server,
and the message size savings in the successful case are dwarved by the almost doubling of resources needed to perform the fallback.</t>
      </section>
      <section anchor="proxy-processing">
        <name>Proxy processing</name>
        <t>A proxy <bcp14>MAY</bcp14> expand or introduce a Uri-Path-Abbrev before consulting its cache.</t>
        <t>It <bcp14>MAY</bcp14> expand a Uri-Path-Abbrev option before forwarding,
in particular if it has reason to assume that the option is not understood.
Like a generic client, it <bcp14>SHOULD NOT</bcp14> introduce an abbreviation without good reason;
and then, it <bcp14>MUST</bcp14> fall back to the expanded form, as to not introduce unexpected errors to the client.</t>
        <t>A proxy that knows Uri-Path-Abbrev but not the concrete value
<bcp14>SHOULD</bcp14> forward it unmodified,
which is the behavior it would apply if it did not know the option.
A reason to reject the request instead is when the proxy is tasked with enforcing access control
(see <xref target="seccons"/>).</t>
        <t>When cross-proxying to protocols that can not transport this option
(such as HTTP),
the proxy needs to expand the path.
<!-- No need to state anything about the inverse direction, as the 2nd paragraph applies. -->
        </t>
      </section>
      <section anchor="interactions">
        <name>Interaction with other options</name>
        <t>The option is mutually exclusive with the Uri-Path option.
Receiving both options in a single request <bcp14>MUST</bcp14> be treated like the presence of a critical request option that could not be processed
(that option being either the Uri-Path-Abbrev option or the conflicting option).</t>
        <t>The Uri-Path-Abbrev option <bcp14>MUST NOT</bcp14> be used in combination with the Proxy-Uri option (or the similar Proxy-CRI option (of <xref target="I-D.ietf-core-href"/>)) by clients.
Proxies that understand Uri-Path-Abbrev and convert Uri-* options into Proxy-Uri <bcp14>MUST</bcp14> expand any Uri-Path-Abbrev if they know the value.</t>
        <t>By the (de)composition rules around Proxy-Uri, and because Uri-Path-Abbrev is safe-to-forward,
a proxy (being generally unaware of this specification) is allowed to combine the option with Proxy-Uri (or Proxy-CRI) when it combines the Uri-* options.
In such a combined message, the Uri-Path segments to which the Uri-Path-Abbrev corresponds are appended to the path as if all components were present as individual options in the request without conflicting.
Servers that support both Uri-Path-Abbrev and Proxy-URI/-CRI <bcp14>SHOULD</bcp14> process requests accordingly.
(This is not a strict requirement, as there are no known implementations of proxies that actually compose a Proxy-URI/-CRI from individual options,
nor is there a reason known why they should).</t>
      </section>
      <section anchor="future-development">
        <name>Future development</name>
        <t>Future updates to this document
might extend the capabilities of the option to be repeated;
that document will need to specify how later occurrences of the option
extend the series of equivalent Uri-Path options from the first value.</t>
        <t>Server implementations that treat repeated Uri-Path-Abbrev options
like any other critical unprocessable option (i.e., by responding with 4.02 Bad Option)
support the transition to such an extension.
<!-- It'd be great to state "this is already required in 7252", but it only implies that and doesn't make it explicit. -->
        </t>
      </section>
      <section anchor="choice-of-the-option-number">
        <name>Choice of the option number</name>
        <t>TBD: Rephrase this to either be useful for readers of the final document
who can thus learn how the option number namespace is managed,
or remove before publication.</t>
        <ul empty="true">
          <li>
            <t>It's already 1+1 -- we generally do try to keep even the 1+1 high so
that later option typically paired with a low option (like EDHOC
paired with OSCORE) can use the small delta. In this case, there's a
good reason (being ordered before Uri-Query) though, and I don't
expect that any other option would need this particular property
(especially given that this option on its own has an extensible value
range).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="initial">
      <name>Initial Uri-Path-Abbrev values</name>
      <t>This document registers values for the following well-known URIs:</t>
      <ul spacing="normal">
        <li>
          <t><tt>/.well-known/core</tt></t>
        </li>
        <li>
          <t><tt>/.well-known/rd</tt> (see <xref target="RFC9175"/>)</t>
        </li>
        <li>
          <t><tt>/.well-known/edhoc</tt> (see <xref target="RFC9528"/>)</t>
        </li>
        <li>
          <t>For EST (<xref target="RFC9148"/>):
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>/.well-known/est/crts</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/sen</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/sren</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/skg</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/skc</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/att</tt></t>
            </li>
          </ul>
          <t>
EST does allow using other paths, such as different root resources or arbitrary labels;
for those, no abbreviations are supported in this document.</t>
        </li>
        <li>
          <t>For <xref target="I-D.ietf-anima-constrained-voucher"/>:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>/.well-known/brski/es</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/brski/rv</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/brski/vs</tt></t>
            </li>
          </ul>
        </li>
      </ul>
      <t>For all those,
later occurrences of Uri-Path-Abbrev are interpreted as additional Uri-Path values.
While there are currently no resources under the CoRE and RD resource,
this behavior is useful in BRSKI and EST.</t>
      <t>Note that the <tt>core</tt> and <tt>rd</tt> paths are commonly used with Uri-Query options.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <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 -20?>
      </t>
      <ul spacing="normal">
        <li>
          <t>aiocoap <eref target="https://christian.amsuess.com/tools/aiocoap/">https://christian.amsuess.com/tools/aiocoap/</eref>  </t>
          <t>
A general-purpose implementation of CoAP for unconstrained sytems,
published under MIT License.  </t>
          <t>
In its current main branch,
the implementation covers the server side of this specification,
applying expansion automatically before looking up which resource to serve.
For client, all it provides is the option field where to place a number if the application decides it is suitable,
relying on the client application to perform the fallback.  </t>
          <t>
It implements version ietf-core-uri-path-abbrev-01.
Implementation experience:
Generally straightforward
unless one tries to preserve the information whether Uri-Path-Abbrev was used for the server application
(but that was probably just a bad idea in the first place).  </t>
          <t>
Contact information: Christian Amsüss (author), updated 2025-09-26</t>
        </li>
      </ul>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Having alternative expressions for information that is input to policy decisions
can be problematic when the mechanism performing the check has a different interpretation of the presented data than the mechanism at time of use.
That concern is not new to this document:
Both the Proxy-Uri of <xref target="RFC7252"/> and the Proxy-Cri option of <xref target="I-D.ietf-core-href"/> have the same properties in that regard.
The appropriate behavior is for policy checkers to reject any request that contains critical options that is not understood;
the application protected by the checker may provide the checker with an allow-list of options that it will treat as unchecked input.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-option">
        <name>CoAP option: Uri-Path-Abbrev</name>
        <t>IANA is requested to enter an one option into the CoAP Option Numbers registry in the CoRE Parameters group:</t>
        <ul spacing="normal">
          <li>
            <t>Number: CPA13</t>
          </li>
          <li>
            <t>Name: Uri-Path-Abbrev</t>
          </li>
          <li>
            <t>Reference: this document</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-reg">
        <name>Uri-Path-Abbrev registry</name>
        <t>IANA is requested to establish a new registry in the CoRE parameters group:
Values of the first Uri-Path-Abbrev option in a CoAP request correspond to a URI path according to this registry.</t>
        <t>The policy for adding any value is IETF Review (as described in <xref target="RFC8126"/>).
Change control for the registry follows this document's publication stream.
Initial values are given in <xref target="initial-table"/>.</t>
        <t>Entry fields are:</t>
        <ul spacing="normal">
          <li>
            <t>First option value.  </t>
            <t>
An non-negative integer that can be expressed in 32 bits,
unique within this registry.  </t>
            <t>
All positive values whose most significant bit of the most significant byte is 1
are reserved.  </t>
            <t>
The Python invocation
<tt>python3 -c 'print("reserved" if (250).bit_length() % 8 == 0 else "unreserved")'</tt>
can be used to quickly test this property for any positive number (250 in this example).</t>
          </li>
          <li>
            <t>Simple expanded path.  </t>
            <t>
This text is the URI path (starting with <tt>/</tt>) that the option,
when present only once in a request,
is expanded to.  </t>
            <t>
This field may be empty if the document describes that the option needs to be repeated when using this first value.</t>
          </li>
          <li>
            <t>Reference.  </t>
            <t>
A document that requested the allocation,
and describes whether the option may be repeated after this first value,
and how later values are expanded</t>
          </li>
        </ul>
        <t>Reviewer instructions:</t>
        <t>The reviewer is instructed to be frugal with the 128 values that correspond to a single-vbyte value,
focusing on applications that are expected to be useful in different constrained ecosystems.</t>
        <t>The expanded path is expected to be well-known paths at the time of writing,
but it is up to the reviewers to exceptionally also admit paths that are not well-known.</t>
        <table anchor="initial-table">
          <name>Initial values for the Uri-Path-Abbrev registry</name>
          <thead>
            <tr>
              <th align="left">First option value</th>
              <th align="left">Simple expanded path</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">/.well-known/core</td>
              <td align="left">
                <xref target="initial"/> of this document</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">/.well-known/rd</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9176"/></td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">/.well-known/edhoc</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9528"/></td>
            </tr>
            <tr>
              <td align="left">301</td>
              <td align="left">/.well-known/est/crts</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">302</td>
              <td align="left">/.well-known/est/sen</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">303</td>
              <td align="left">/.well-known/est/sren</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">304</td>
              <td align="left">/.well-known/est/skg</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">305</td>
              <td align="left">/.well-known/est/skc</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">306</td>
              <td align="left">/.well-known/est/att</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">401</td>
              <td align="left">/.well-known/brski/es</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="I-D.ietf-anima-constrained-voucher"/></td>
            </tr>
            <tr>
              <td align="left">402</td>
              <td align="left">/.well-known/brski/rv</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="I-D.ietf-anima-constrained-voucher"/></td>
            </tr>
            <tr>
              <td align="left">403</td>
              <td align="left">/.well-known/brski/vs</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="I-D.ietf-anima-constrained-voucher"/></td>
            </tr>
          </tbody>
        </table>
        <!-- We could also say in prose to take them from there and list the numbers there, but it is useful for later registrant to have a ready-made template in the document that sets things up. -->

</section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </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="I-D.ietf-lake-reqs-04">
          <front>
            <title>Requirements for a Lightweight AKE for OSCORE</title>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>Inria</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Dan Garcia-Carillo" initials="D." surname="Garcia-Carillo">
              <organization>Odin Solutions S.L.</organization>
            </author>
            <date day="8" month="June" year="2020"/>
            <abstract>
              <t>   This document compiles the requirements for a lightweight
   authenticated key exchange protocol for OSCORE.  This draft has
   completed a working group last call (WGLC) in the LAKE working group.
   Post-WGLC, the requirements are considered sufficiently stable for
   the working group to proceed with its work.  It is not currently
   planned to publish this draft as an RFC.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-reqs-04"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-draft-numbers">
          <front>
            <title>Managing CBOR codepoints in Internet-Drafts</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   CBOR-based protocols often make use of numbers allocated in a
   registry.  During development of the protocols, those numbers may not
   yet be available.  This impedes the generation of data models and
   examples that actually can be used by tools.

   This short draft proposes a common way to handle these situations,
   without any changes to existing tools.  Also, in conjunction with the
   application-oriented EDN literal e'', a further reduction in
   editorial processing of CBOR examples around the time of approval can
   be achieved.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-draft-numbers-06"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="I-D.ietf-core-href">
          <front>
            <title>Constrained Resource Identifiers</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="30" month="August" year="2025"/>
            <abstract>
              <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.

   This RFC updates RFC 7595 to add a note on how the "URI Schemes"
   registry of RFC 7595 cooperates with the "CRI Scheme Numbers"
   registry created by the present RFC.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision –24 attempts to address follow-on AD review
   // comments as well as comments from the ARTART review.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-24"/>
        </reference>
        <reference anchor="RFC9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases. The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address. The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request. This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9175"/>
          <seriesInfo name="DOI" value="10.17487/RFC9175"/>
        </reference>
        <reference anchor="I-D.ietf-anima-constrained-voucher">
          <front>
            <title>Constrained Bootstrapping Remote Secure Key Infrastructure (cBRSKI)</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>vanderstok consultancy</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="6" month="July" year="2025"/>
            <abstract>
              <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (cBRSKI) protocol, which provides a solution for
   secure zero-touch onboarding of resource-constrained (IoT) devices
   into the network of a domain owner.  This protocol is designed for
   constrained networks, which may have limited data throughput or may
   experience frequent packet loss. cBRSKI is a variant of the BRSKI
   protocol, which uses an artifact signed by the device manufacturer
   called the "voucher" which enables a new device and the owner's
   network to mutually authenticate.  While the BRSKI voucher data is
   encoded in JSON, cBRSKI uses a compact CBOR-encoded voucher.  The
   BRSKI voucher data definition is extended with new data types that
   allow for smaller voucher sizes.  The Enrollment over Secure
   Transport (EST) protocol, used in BRSKI, is replaced with EST-over-
   CoAPS; and HTTPS used in BRSKI is replaced with DTLS-secured CoAP
   (CoAPS).  This document Updates RFC 8995 and RFC 9148.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher-28"/>
        </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="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>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC8790">
          <front>
            <title>FETCH and PATCH with Sensor Measurement Lists (SenML)</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="M. Mohajer" initials="M." surname="Mohajer"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media type and data model can be used to send collections of resources, such as batches of sensor data or configuration parameters. The Constrained Application Protocol (CoAP) FETCH, PATCH, and iPATCH methods enable accessing and updating parts of a resource or multiple resources with one request. This document defines new media types for the CoAP FETCH, PATCH, and iPATCH methods for resources represented using the SenML data model.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8790"/>
          <seriesInfo name="DOI" value="10.17487/RFC8790"/>
        </reference>
      </references>
    </references>
    <?line 383?>

<section anchor="further-development">
      <name>Further development</name>
      <t>Several possible further directions are anticipated in this document,
but not specified at this point in time;
they are left for further documents:</t>
      <ul spacing="normal">
        <li>
          <t>The mechanism of expanding one option into another option
might be expressed using the terminology of SCHC.  </t>
          <t>
Such a generalization is not aimed for in this document;
authors of any future document providing such a framework
are encouraged to provide an equivalent but machine-readable explanation of the mechanism specified here.</t>
        </li>
        <li>
          <t>The registry for Uri-Path-Abbrev values is set up such that first values can not have the most significant bit of the first byte set.  </t>
          <t>
This allows future documents to reuse the option for any CBOR expressions,
e.g. the path component of a CRI <xref target="I-D.ietf-core-href"/>.
Note that those CBOR structures can only use the major types 4 to 7 for the top-level item,
but that includes all containers (arrays, maps and tags).  </t>
          <t>
Senders and recipients of this option do not need to concern themselves with that extension mechanism
unless they implement it:
As the first value is compared to known registry entries,
any CBOR item contained in it will simply not match any known value.
Should the working group decide not to use that extension point,
the registry's policy can be relaxed to also allow values with that leading bit set.</t>
        </li>
        <li>
          <t>A future document may update this document
to allow registering values that are allowed to use together with Uri-Path values
(but at the time of writing, no examples are known by which such a design could be properly vetted).
In particular, that update weakens the "<bcp14>MUST</bcp14>" in <xref target="interactions"/>.</t>
        </li>
        <li>
          <t>This option is designed to stand in for the Uri-Path option alone,
not for any other option;
this simplifies its interaction rules.  </t>
          <t>
In particular,
application authors who seek to express Uri-Query options in a more concise or easier to process way
are advised to avail themselves of the FETCH method introduced in <xref target="RFC8790"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="open-questions">
      <name>Open questions</name>
      <t>This section will be gone by the time this document is published.</t>
      <ul spacing="normal">
        <li>
          <t>Is the transformation of separate options to Proxy-URI even <em>legal</em> for proxies?  </t>
          <t>
If not, we can simplify the handling (and Uri-Path would <em>really</em> not have needed to be proxy-unsafe).  </t>
          <t>
Tracked at <eref target="https://github.com/core-wg/corrclar/issues/51">https://github.com/core-wg/corrclar/issues/51</eref>.</t>
        </li>
        <li>
          <t>This document might incentivise users to send more traffic through /.well-known/ paths,
rather than go through discovery.
It is up to WG discussion to decide whether this is desirable;
to not make this document depend on that outcome,
the registration policy is currently "IETF Review",
which is extremely strict and can be relaxed in a later document if the WG decides so.</t>
        </li>
      </ul>
    </section>
    <section anchor="change-log">
      <name>Change log</name>
      <t>Since ietf-core-uri-path-abbrev-00: Processing previous two interims.</t>
      <ul spacing="normal">
        <li>
          <t>Rename option to Uri-Path-Abbrev.</t>
        </li>
        <li>
          <t>Allocate per-resource codes for EST and cBRSKI.</t>
        </li>
        <li>
          <t>Allocate code for EDHOC.</t>
        </li>
        <li>
          <t>Defer repeated use to future extensions.</t>
        </li>
        <li>
          <t>Rearrange content to have dedicated server, client and proxy subsections for option processing.</t>
        </li>
        <li>
          <t>Establish that generic clients <bcp14>SHOULD NOT</bcp14> use this without reason.</t>
        </li>
        <li>
          <t>More explicit language for proxies, including cross-proxies.</t>
        </li>
        <li>
          <t>Add introduction and motivating example.</t>
        </li>
        <li>
          <t>Add RFC7942 Implementation Status section.</t>
        </li>
      </ul>
      <t>Since draft-amsuess-core-shopinc-02:</t>
      <t>Adopted into WG unmodified as I-D.ietf-core-uri-path-abbrev</t>
      <t>Since draft-amsuess-core-shopinc-01: Processing 2025-08-27 interim.</t>
      <ul spacing="normal">
        <li>
          <t>Document is standards track.</t>
        </li>
        <li>
          <t>Change name of the option from Short-Uri-Path to Uri-Path-Abbr.</t>
        </li>
        <li>
          <t>Close question of whether use of option 13 is justified (it is).</t>
        </li>
        <li>
          <t>Minor editorials.</t>
        </li>
      </ul>
      <t>Since draft-amsuess-core-shopinc-00:</t>
      <ul spacing="normal">
        <li>
          <t>Switched option type from opaque to uint (retaining the lockout for values that look like CBOR arrays/maps).</t>
        </li>
        <li>
          <t>MCR joined as author.</t>
        </li>
        <li>
          <t>Added initial values for BRSKI and EST.</t>
        </li>
        <li>
          <t>Allow 4.04 responses.</t>
        </li>
        <li>
          <t>Add guidance for choosing prefixes and rules.</t>
        </li>
        <li>
          <t>Large editorial changes.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was created out of discussion with Esko Dijk and Michael Richardson.
Carsten Bormann provided useful input on shaping the registry.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Vc6XLcRpL+j6eooWPDpMxukZRkyfTYHpqiRozRNaS8jonZ
Q9VAdXeZaKAHBZDqkfQu+yD7a/fFNr/MqkIBTfrYiXGETBJHHXl+eRQmk0nW
2rY0x2rnh4vzyRvdLpWezRpzbXVr60rZSp3WJ292MrmK5xrLz01O+MpOluvW
LOpmc6xcW2RZUeeVXtGIRaPn7cSadj7J68ZMOnpxjRdlqMnBYea62co6RxO1
mzW9cn729llWdauZaY6zgsY9zvK6cqZynTtWbdOZjJbwILupm6tFU3frY1rd
xVl2ZTZ0qTjO1ETltV5n16bq6GWl4lOVaxttK1Ooi7PLt/OuVGfVtW3qamWq
1tGTK23LY4WV/gFrntbNAu/bdtnN5PrkZnF/tIks0127rGm1E3rYVrTK06k6
Wbn//W+HQYUSp8vGutbqKrmT113VgmgnHa3Marpk/BLC03/QK9cZ56Z5vcqy
iQz/cqoubL7UTeHqKs7wEpdMObxFOzhWl7oqTLmiuS/reXujG6N+JOq5fr5V
3nyBHf/BhUenuc6yqm5WJAPXRMbMVvPkr+l0SsuZTEhSQNS8zbKT9bq0OYuM
U7POlq2qRXLUXOdGadpvNadHWjUz7Y0xlWqXRrUmX1b0XqkqQ5yhSZQjarZq
RdvWC6Oc/btxGa2LH7dVa5p6bRo9s6VtN6oxf+tsY8BCVc/p/bKsb2y1UN+f
vjn86sC/2Dl6cEE0NQ3u7Tam5K2UG3VtmlntzJ66MWU5uarqm0qRIiiw2E2z
t0vrFAl0xzPQ9E1ddLlxishZr1lB2qVulca8Tpn364YWjkmS8XgsKJJ2ilZN
2obf2ptazTatcZ6WK1sUpcmyz9S5nwbDZ9mPS6IVKFpgWN3TmSi6WtcVpDfS
evfDh99dPDt9fPTo6NOnvf2MNIdfcytaYSAqrYU2oBamIkKWalHT/6zww+S1
2xCdVtmunZrpPrgW9cYk+rKvbpaGRIl0VKuGFJVGpD9Lu7ItPQq6l7ohBq51
fmVohTlRrDSa2FH7a6qsHY3jjFEfPnzHqz56Qque0pYt0Yg3lDOhDWZQNxbG
iX4UhqasaHBiOTHL0T5ZaEBo1gdZTIsVkkgZEsFr+lEQpd8uidtq63GWPlrZ
jHZkXV6TWJhin7fx4UMkqP8ba/3yy68O6MK6qa+xnBXJsa6sWzmWYcjEdKgT
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

-->

</rfc>
