<?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.2 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pardue-capsule-ext-guidance-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="TODO - Abbreviation">Guidance for HTTP Capsule Protocol Extensibility</title>
    <seriesInfo name="Internet-Draft" value="draft-pardue-capsule-ext-guidance-00"/>
    <author fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucaspardue.24.7@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="November" day="23"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 44?>

<t>This document updates RFC 9297 with further guidance for extensibility of the
HTTP Capsule Protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://LPardue.github.io/draft-pardue-capsule-ext-guidance/draft-pardue-capsule-ext-guidance.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-pardue-capsule-ext-guidance/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/LPardue/draft-pardue-capsule-ext-guidance"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Capsule Protocol <xref target="CAPSULE"/> is a sequence of type-length-value
tuples that definitions of new HTTP upgrade tokens can choose to use. It allows
endpoints to reliably communicate request-related information end-to-end on
HTTP request streams, even in the presence of HTTP intermediaries.</t>
      <t>Clients can indicate in requests that they want the data stream to use the
Capsule Protocol by providing an upgrade token and/or a Capsule-Protocol header
field; see <xref section="3" sectionFormat="of" target="CAPSULE"/>. Servers confirm Capsule Protocol usage by
returning a response in the 2xx (Successful) range, possibly including a
Capsule-Protocol header field.</t>
      <t>The process of initiating the Capsule Protocol for any given data stream
identifies the purpose of usage and the Capsule types that endpoints can send or
receive.</t>
      <t>This document updates RFC 9297 with further guidance for extensibility of the
Capsule Protocol.</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?>

</section>
    <section anchor="the-extensibility-of-capsule-type-usage">
      <name>The Extensibility of Capsule Type Usage</name>
      <t>In order to support extensibility, <xref section="3.2" sectionFormat="of" target="CAPSULE"/> requires that:</t>
      <ul empty="true">
        <li>
          <t>Endpoints that receive a Capsule with an unknown Capsule Type <bcp14>MUST</bcp14> silently
drop that Capsule and skip over it to parse the next Capsule.</t>
        </li>
      </ul>
      <t>The first ambiguity in this text comes from the term "endpoint". It relates to
the resource that the Capsule Protocol negotiation applies to, not the general
HTTP endpoint. In other words, known or unknown types are scoped only to the
request stream Capsule Protocol usage, nothing else.</t>
      <t>For example, proxying UDP in HTTP <xref target="UDP-PROXYING"/> makes use of the
updgrade token "connect-udp" to enable the Connect Protocol. It describes how
DATAGRAM capsules (<xref section="3.5" sectionFormat="of" target="CAPSULE"/>) can be used. Use of other capsule
types on that data stream is undefined, the expectation being that they are
ignored on receipt.</t>
      <t>Similarly, proxing IP in HTTP <xref target="IP-PROXYING"/> makes use of the upgrade
token "connect-ip" to enable the Connect Protocol. It defines ADDRESS_ASSIGN,
ADDRESS_REQUEST, and ROUTE_ADVERTISEMENT capsules (<xref section="4.7" sectionFormat="of" target="IP-PROXYING"/>) and describes how these can be used together with DATAGRAM
capsules.</t>
      <t>An HTTP server could support both UDP and IP proxying and it's implementation
would be able to understand all four capsule types. However, use of
ADDRESS_ASSIGN, for example, on a "connect-udp" data stream is undefined by
<xref target="UDP-PROXYING"/>.</t>
      <section anchor="negotiating-additional-capsule-type-usage">
        <name>Negotiating Additional Capsule Type Usage</name>
        <t>The second ambiguity with the text in <xref section="3.2" sectionFormat="of" target="CAPSULE"/> comes from
ambiguity of intent. Silent dropping of unknown types new can be safely used by
extensions without prior arrangement or negotiation.</t>
        <t>However, some extensions might be built on the assumption a capsule is processed
by the recipient. For example to send a capsule that elicits some response
message or behavioural change. Such extensions can benefit from some form of
explicit negotiation.</t>
        <t>There are several approaches to negotiating the use of new capsule types within
the scope of a request stream Capsule Protocol. This document does not mandate
any specific method but advises protocol designers to use negotiation patterns
that fit the end-to-end nature of the Capsule Protocol, where endpoints generate
and process capsules.</t>
        <t>Specifically SETTINGS negotiation (<xref section="5.5" sectionFormat="of" target="RFC9113"/> and <xref section="9" sectionFormat="of" target="RFC9114"/>) could be used to extend a connection, changing the scope of Capsule
Protocol knowledge for all request streams or a set of upgrade tokens. However,
the SETTINGS are not an end-to-end mechanism and therefore this method of
negotiation does not work when intermediaries are involved.</t>
        <t>Negotiation of new capsule types via new upgrade tokens is an end-to-end
mechanism.  However, while HTTP/1.x clients can offer several token values in
the Upgrade mechanism (<xref section="7.8" sectionFormat="of" target="RFC9110"/>), extended CONNECT
(<xref target="EXT-CONNECT2"/> and <xref target="EXTCONNECT3"/>) does not support this
possibility. While HTTP/2 or HTTP/3 clients could use multiple separate requests
in order to attempt the selection of a most-preferred upgrade token, this
requires additional round trips which might introduce undesirable delays.</t>
        <t>Header fields provide an end-to-end negotiation mechanism. The Capsule-Protocol
header field is itself extensible and parameters could, in theory, be used to
negotiate extensions. However, Capsule-Protocol requires that unknown parameters
are ignored, so extension designers ought to use an offer-echo pattern that
confirms the recipient did process the parameter. Also note that use of
Capsule-Protocol is optional and the upgrade tokens can mandate use of the
Capsule Protocol without this header field. In such cases, a new header field
can be defined to support extension negotiation.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The ability to send capsule types that the peer may not know, and is therefore
required to ignore, can be abused to cause a peer to expend additional
processing time. This could become a burden when used unnecessarily or to
excess.</t>
      <t>An endpoint that does not monitor such behavior exposes itself to a risk of
denial-of-service attack. Implementations <bcp14>SHOULD</bcp14> track the use of unknown
capsule types and set limits on their use. An endpoint <bcp14>MAY</bcp14> treat activity that
is suspicious as a reason to close a connection, but false positives will result
in disrupting valid connections and requests. For guidance on closing
connections see <xref section="9.6" sectionFormat="of" target="RFC9112"/>, <xref section="5.5" sectionFormat="of" target="RFC9113"/>, and
<xref section="9" sectionFormat="of" target="RFC9114"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>There are no IANA considerations.</t>
    </section>
  </middle>
  <back>
    <displayreference target="RFC9110" to="HTTP"/>
    <displayreference target="RFC9112" to="HTTP/1.1"/>
    <displayreference target="RFC9113" to="HTTP/2"/>
    <displayreference target="RFC9114" to="HTTP/3"/>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="CAPSULE">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
              <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
              <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9297"/>
          <seriesInfo name="DOI" value="10.17487/RFC9297"/>
        </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="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>
        <reference anchor="RFC9112">
          <front>
            <title>HTTP/1.1</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 specifies the HTTP/1.1 message syntax, message parsing, connection management, and related security concerns.</t>
              <t>This document obsoletes portions of RFC 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="99"/>
          <seriesInfo name="RFC" value="9112"/>
          <seriesInfo name="DOI" value="10.17487/RFC9112"/>
        </reference>
        <reference anchor="RFC9113">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t>This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <reference anchor="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="UDP-PROXYING">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9298"/>
          <seriesInfo name="DOI" value="10.17487/RFC9298"/>
        </reference>
        <reference anchor="IP-PROXYING">
          <front>
            <title>Proxying IP in HTTP</title>
            <author fullname="T. Pauly" initials="T." role="editor" surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="A. Chernyakhovsky" initials="A." surname="Chernyakhovsky"/>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document describes how to proxy IP packets in HTTP. This protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets. More specifically, this document defines a protocol that allows an HTTP client to create an IP tunnel through an HTTP server that acts as an IP proxy. This document updates RFC 9298.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9484"/>
          <seriesInfo name="DOI" value="10.17487/RFC9484"/>
        </reference>
        <reference anchor="EXT-CONNECT2">
          <front>
            <title>Bootstrapping WebSockets with HTTP/2</title>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <date month="September" year="2018"/>
            <abstract>
              <t>This document defines a mechanism for running the WebSocket Protocol (RFC 6455) over a single stream of an HTTP/2 connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8441"/>
          <seriesInfo name="DOI" value="10.17487/RFC8441"/>
        </reference>
        <reference anchor="EXTCONNECT3">
          <front>
            <title>Bootstrapping WebSockets with HTTP/3</title>
            <author fullname="R. Hamilton" initials="R." surname="Hamilton"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The mechanism for running the WebSocket Protocol over a single stream of an HTTP/2 connection is equally applicable to HTTP/3, but the HTTP-version-specific details need to be specified. This document describes how the mechanism is adapted for HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9220"/>
          <seriesInfo name="DOI" value="10.17487/RFC9220"/>
        </reference>
      </references>
    </references>
    <?line 185?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>David Schinazi and Tommy Pauly are capsule enthusiasts that suggested some ideas
leading to the genesis of this document</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61Z23IbuRF9x1cg9EN2UyRlydrYZnbXy5Vom1WypIhUdl2p
1BY4A5IozQwmAIYSV6V/ybfky3IawNwkOc5DXizODC7dp7tPH8Cj0Yg55TI5
4YMPlUpFkUi+1oZ/XC4v+YkobZVJfmm004nO+OzOycKqlcqU2w+YWK2M3GHq
8uL0go/41D8r4ZQuBiwRTm602U+4dSljqU4KkWOj1Ii1G5XCpJUcJWGLkbxz
o000YPTyJbPVKlfWYiG3LzFpPlu+5/wFF5nV2FAVqSwl/incYMgHMlVOGyUy
ephPf8Yf+DCYXy3fD1hR5StpJiyFPROW6MLCh8pOuDOVZDD/FcO6RooJn17N
pni41eZmY3RVTvgvH/gveFLFhn+gN+xG7vE5nTD4W8BqvpGFNN5lelUVKtHG
/7Rw8SajmamyzqhV5WTKM5lupGE7WVSw5gXnzUb0EJzt74jXuVAZDflJ3om8
zOQ40Tm9FybZTvjWudJODg46Hw+wHJZWblutANfZpUf74KvQDzArA07WYVa9
bpw9DsuNlf76Ol8fMd66PBswJiq31YbgxNacr6ssC2kyOKsSYXnYe+A/arMR
hfrdgz3hJ5mu0nWGyPmPMoA0yGha2Hh8dDx+/dOGPhAo2K3QJsf0HaBnqli3
T5xfvT95e3j4cuIX4xSzMhNIXqqE5vNR+Nz7eHA4PmwGvHpuwFHz+fi5z68Y
G41GXKyQJSJxjC23ynLUS5Ujv3lVUuZaWoG/PXr7mt8iDgDKuK00fNOtWtmt
T67XHEPYs6U8ZmHTXKVpJhmSaV44o9Mq8ZkME+TT8r+//8PJ9HJxfTb7gdyB
LQ8PHKYKbuU/K0lW0J7I4VEmi43bjnYiQ425CmlpYYxwPJVrVSjaxNLgQt4G
rqnKjRGp5E7fwAWeiIInW60tveGVlWM+d6j+TN9ahsIvtSqcpW9GZkqssj1H
hHMqP4CFl7DHuhE+Cqq6Jta64Jg9cnqEPxye+s3jcBAVaCC3Qy5Rn5hE+PHS
SFv75kdjZ2lycI4wSlogeZIpSdaQ0WCmYAJmx2Wj51hrz29F4X9xxFTE/aKH
PlhPMF/tYYDeqZQIAev3cMKL9ABxF3WsRs28rcQow9ZKZulfEB+J6C2kjy5/
Ra7ESD48jPlCmp00sF8Xa2Xyp4GvrNhImMKMdJUpvCnwzpZEpjVOR3d3/JtF
lSTSWpTxt9yIYiOHvNTgcQqQKpKsCn6wL9jLvb3jkH/wm9YiY33KIHyY657L
TEp+UezBeBS4DrZMUY9QWNaGYFampKTCmsEpINhbkrI3BqxNMwqs9QljAEEi
scv4/12mz1ToC36iix3ZT9VClp621RMwuqGcQj+yfPDperGk/kd/+fmF/301
++v1/Gp2Sr8XH6dnZ80PFkcsPl5cn522v9qZJxefPs3OT8NkvOW9V2zwafoZ
X8iqwcXlcn5xPj0bhFzowgJ6pvxeyVA2KCaqR2FZKm2CpuiLk/98cvnvfx0e
E8MAv6PDw7dglvDw5vD1MR5ut7IIu+kCuRQeqaSYKEspDK0CekCoSuWgEjDW
crvVtwVSy1C4/vR3QuYfE/79KikPj3+ML8jh3ssas95Lj9nTN08mBxCfefXM
Ng2avfePkO7bO/3ce65x77z8/h0kh+SjwzfvfmSUQpQls8cJVyfbEtnOr6kQ
GJsXSG+qQYTLVmWpjetn6rBLIeOjHol4rlMmlg6664981rI0VVOsm5arQoEQ
pRU3BcWpZ5QPjVXoIy7bY7XU6DIsVA+jXLA3quQa5MWVI7vR9wORBm0Wh0Y+
AbeB40W+UqhGt29y1dFQdA8YvzY699OJ4aErowsD331CM6Gmw2gInNWVSWTD
7k9pqYAAdkEPc6Rp5llID3mhw4SgHbPQhOrNsBci4VnDV/aQB3hAHDVSgaSo
tGyiSxlrAv4TkfSb2RfI3NuwJT6VmSWA3nte8gJySMx7t6eP16fU7kLbu79/
h8fR5dXFr5/n5x+iBHiD2OfiBuZUgVbJBHBht0sN0FgKJM6oSssBmSkLdOwQ
p5PwqaU9QrrmBstRwOx0upx+uJp+4lFHWv5NNxG/6yXit56sQTcwJx0jt71R
Ac44nwX4dBEVSacTIxuqwksUmXp6ASYldgohXMnQgOpmTtJTbaApfQRChpcO
YC5UriBMs32AkmbNe0DOH+F4/Ob4GRzrZs8ewaj+VxTJD8unp6dXs8Xit+li
Mf9wPmT1MxHdbLEMrHp1cb2c/TY9/dvsajlfzEA+y2fxhqKGdazjAGFOK/SC
RlbBj04sYPFGhqymuq+DyupNANs0AmS9HkFJVlnaUNEKMfT5SHsBzSZH6Vm5
P1quKHmp6YTT2K2fjt0DStpHFgxA46lTrFG9tYuhosb8o76F9DPDGAT2CLrY
vWOVUFE/yu0v5RJpp/v7bvlAd4GdX/DzmiLgyTRNfW8X2bMETRxmJfZLOyTm
wQyMBRZDiv0Xjm45jrULeHUFlgfvLDzdeqotyR4SST3GIbUeQ2rFWoJzfGTh
XGwUpFPIIl05BEiRKjNeBnotgMcOI8L/Bm4Ly3hnjVxtto62WVUqc6FUEUhr
q7wMbNpEDjBHoShTBrUcqDlRpfI+dXjNNzZSce3koPMylSi0KW9ErWoZoPIC
EfNXcit2CumCwCRbcgdYVcm2a3GApUC4XegifjU6dVAegUX8Jo/8X5I0CTxO
OGB5dAmjRbL1jaIdHXVvpIYQhq5eJcxV4duS7wg0SvCvdIIx7yvYVFOI0Zpy
lAg6HSNFbUF/kM8Jz1G8GrFGZEW6U1Z63ENLQemDB+kIEY8y3cZXCoduCsHq
wSZ8PK+2p7BC4FDRcN5jK4ek9YzsqPF440L2pc0hoUMji2gyinzPF7PlEuW2
6JnU4bPvQv+Ip3cUCS3afn5L0Ytnd99calKJlBZSwKdU4AFMGoYkqYPWBCR6
xppOTKXl74PC+QWc9Oggyv3ZzkrnS7F3Qm65yke9cZOSiWIoegfdXJJJyub1
ecdIbCmD/omRhaNdjJpsoNswr7cfHXz9VqrY6Wwn6ch23pn8bJLulPBvHx31
6QKhayxrjB3zlpBvtyCn+r7ljiedI7der9Et6goKvdJfPGDtUBPXcccWhk4G
vB6/aTPgJYI8jEFFgE8uzs9nJ0uG4e9mvy5H8fmImvab4+PDJl/oa/z4Kiij
I1qqRbFuY4Q4C0diL6rH/JfWsyMer14PXrUe+oyjosqrzCniMSuhczvXHJap
jnancgNLhtyTWfTSE0KurRvhCAa8SLP0AjEMpjU6XrTNyOiKssao0lIcQHyB
n1W8MpK+0VllfKdNIZP3VIcfO0d6G28x5KPE7GZcJ+6d66fmioB1rwgoa8DZ
Mls3Z5R4JCBokNHhPgPQDeP9hDZQY23hNrne7TsdAfDkgqJ3wGn6Yrsb8+UQ
1CA1tHbZDj3qinCLJFmn7gh+65om/fIs3sTYfjfjqWoJz99m1LuP+TTDlki0
2NOifnniBWDTZQxrffXxzNVb7ABdTf/kHFH3ec8hvesbOsBY6o+JQJuAvvRl
3x3Cooqo5dHTIydg6/dKHGVRsZUhzQK5a5FL4do93oSIeLqtm3zy9ELHQyZh
Qy72vigphkH+KtuyYl0D3qwQ0WEte8SqJv5E+BiGBX0jKH0jaMqGxUj5PqBy
Gdtt3UFIjGH6qkLdFoFf/dIVtRHSHkahfWlaG/KB3gSFXPfBeHhperYu6P9A
Au5RsJDyoduuplSIHbhR9oZyA9sqkY30ekR6W6GKkYEiuUH4ekLa8niDQbfT
N10dEouA9aH253K0rAyHIBePWVKZcInbdeDT9DOnPodmBY7a+eBR8gMkW9kS
eklXlq5xSMkISwsB9kx72LvtljTJWuAcS3eNii70SRH5dgq7HLFjqqypSi+k
0BpQRu38YHFNpUExNtd12JR2xDzWndG/T307/nPbQY4eHroXJY/1hU831hcY
vBEYIc/n0/PpczketWKhw4ikN6K+0V8hSLTINKnlBUXSsvtJ+I8wmf4w8GAN
Hhg7RZqkfJFAPIrflQdiqfN8zy9FlfkDblNHWGRbWSWa+2xbbTZADCnrpS4s
EZZlKHKf8Lq54LDKBg7paE32H9IyeV15HAAA

-->

</rfc>
