<?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.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mattsson-tls-super-jumbo-record-limit-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="Large Record Sizes for TLS">Large Record Sizes for TLS and DTLS with Reduced Overhead</title>
    <seriesInfo name="Internet-Draft" value="draft-mattsson-tls-super-jumbo-record-limit-03"/>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Siemens</organization>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="M." surname="Tüxen" fullname="Michael Tüxen">
      <organization>Münster Univ. of Applied Sciences</organization>
      <address>
        <email>tuexen@fh-muenster.de</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 56?>

<t>TLS 1.3 records limit the inner plaintext (TLSInnerPlaintext) size to 2<sup>14</sup> + 1 bytes, which includes one byte for the content type, and have a 3-byte overhead due to the fixed fields opaque_type and legacy_record_version. This document defines a TLS extension that allows endpoints to negotiate a larger maximum inner plaintext size, up to 2<sup>32</sup> - 256 bytes, while reducing overhead.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://emanjon.github.io/tls-super-jumbo-record-limit/draft-mattsson-tls-super-jumbo-record-limit.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mattsson-tls-super-jumbo-record-limit/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/emanjon/tls-super-jumbo-record-limit"/>.</t>
    </note>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>TLS 1.3 records limit the inner plaintext (TLSInnerPlaintext) size to 2<sup>14</sup> + 1 bytes, which includes one byte for the content type, and have a 3-byte overhead due to the fixed fields opaque_type and legacy_record_version. TLS-based protocols are increasingly used to secure long-lived interfaces in critical infrastructure, such as telecommunication networks. In some infrastructure use cases, the upper layer of DTLS expects a message oriented service and uses message sizes much larger than 2<sup>14</sup>-bytes. In these cases, the 2<sup>14</sup>-byte limit in TLS necessitates an additional protocol layer for fragmentation, resulting in increased CPU and memory consumption and additional complexity. Allowing 2<sup>32</sup>-byte records would eliminate additional fragmentation in almost all use cases. In <xref target="RFC6083"/> (DTLS over SCTP), the 2<sup>14</sup>-byte limit is a severe restriction.</t>
      <t>This document defines a "large_record_size_limit" extension that allows endpoints to negotiate a larger maximum inner plaintext (TLSInnerPlaintext) size. This extension is valid in TLS 1.3 and DTLS 1.3. The extension works similarly to the "record_size_limit" extension defined in <xref target="RFC8449"/>. Additionally, this document defines new TLS 1.3 TLSLargeCiphertext and DTLS 1.3 unified_hdr structures to enable inner plaintexts up to 2<sup>32</sup> - 256 bytes with reduced overhead. For example, inner plaintexts up to 2<sup>16</sup> - 256 bytes can be supported with 3 bytes less overhead, which is useful in constrained IoT environments. The "large_record_size_limit" extension is incompatible with middleboxes expecting TLS 1.2 records.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</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-largerecordsizelimit-extension">
      <name>The "large_record_size_limit" Extension</name>
      <t>The ExtensionData of the "large_record_size_limit" extension is LargeRecordSizeLimit:</t>
      <artwork><![CDATA[
   uint32 LargeRecordSizeLimit;
]]></artwork>
      <t>LargeRecordSizeLimit denotes the maximum size, in bytes, of inner plaintexts that the endpoint is willing to receive. It includes the content type and padding (i.e., the complete length of TLSInnerPlaintext). AEAD expansion is not included.</t>
      <t>The large record size limit only applies to records sent toward the endpoint that advertises the limit. An endpoint can send records that are larger than the limit it advertises as its own limit. A TLS endpoint that receives a record larger than its advertised limit <bcp14>MUST</bcp14> generate a fatal "record_overflow" alert; a DTLS endpoint that receives a record larger than its advertised limit <bcp14>MAY</bcp14> either generate a fatal "record_overflow" alert or discard the record. An endpoint <bcp14>MUST NOT</bcp14> add padding to records that would cause the length of TLSInnerPlaintext to exceed the limit advertised by the other endpoint.</t>
      <t>Endpoints <bcp14>MUST NOT</bcp14> send a "large_record_size_limit" extension with a value smaller than 64 or larger than 2<sup>32</sup> - 256. An endpoint <bcp14>MUST</bcp14> treat receipt of a smaller or larger value as a fatal error and generate an "illegal_parameter" alert.</t>
      <t>The server sends the "large_record_size_limit" extension in the EncryptedExtensions message. During resumption, the limit is renegotiated. Records are subject to the limits that were set in the handshake that produces the keys that are used to protect those records. This admits the possibility that the extension might not be negotiated during resumption.</t>
      <t>Unprotected messages and records protected with early_traffic_secret or handshake_traffic_secret are not subject to the large record size limit.</t>
      <t>When the "large_record_size_limit" extension is negotiated:</t>
      <ul spacing="normal">
        <li>
          <t>All TLS 1.3 records protected with application_traffic_secret <bcp14>MUST</bcp14> use the TLSLargeCiphertext structure instead of the TLSCiphertext structure. The size of the length field depends on the limit advertised by the receiver. If the limit is less than 2<sup>16</sup> - 255 an uint16 is used, if the limit is larger than 2<sup>24</sup> - 256 an uint32 is used, and otherwise an uint24 is used. The length is fixed for the connection. Different lengths might be used in different directions.</t>
        </li>
      </ul>
      <artwork><![CDATA[
   enum { u16(0), u24(1), u32(2) } Length;
]]></artwork>
      <artwork><![CDATA[
   struct {
       select (Length.type) {
           case u16: uint16;
           case u24: uint24;
           case u32: uint24;
       };
    } VarLength;
]]></artwork>
      <artwork><![CDATA[
   struct {
       VarLength length;
       opaque encrypted_record[TLSLargeCiphertext.length];
   } TLSLargeCiphertext;
]]></artwork>
      <ul spacing="normal">
        <li>
          <t>All DTLS 1.3 records protected with application_traffic_secret and with length present <bcp14>MUST</bcp14> use a unified_hdr structure with a length equal to the TLS 1.3 length field defined above.</t>
        </li>
      </ul>
      <artwork><![CDATA[
    0 1 2 3 4 5 6 7
   +-+-+-+-+-+-+-+-+
   |0|0|1|C|S|L|E E|
   +-+-+-+-+-+-+-+-+
   | Connection ID |   Legend:
   | (if any,      |
   /  length as    /   C   - Connection ID (CID) present
   |  negotiated)  |   S   - Sequence number length
   +-+-+-+-+-+-+-+-+   L   - Length present
   |  8 or 16 bit  |   E   - Epoch
   |Sequence Number|
   +-+-+-+-+-+-+-+-+
   | 16, 24, or 32 |
   |  bit Length   |
   | (if present)  |
   +-+-+-+-+-+-+-+-+
]]></artwork>
      <ul spacing="normal">
        <li>
          <t>An endpoint <bcp14>MAY</bcp14> generate records protected with application_traffic_secret with inner plaintext that is equal to or smaller than the LargeRecordSizeLimit value it receives from its peer. An endpoint <bcp14>MUST NOT</bcp14> generate a protected record with inner plaintext that is larger than the LargeRecordSizeLimit value it receives from its peer.</t>
        </li>
      </ul>
      <t>The "large_record_size_limit" extension is not compatible with middleboxes expecting TLS 1.2 records and <bcp14>SHOULD NOT</bcp14> be negotiated where such middleboxes are expected. A server <bcp14>MUST NOT</bcp14> send extension responses to more than one of "large_record_size_limit", "record_size_limit", and "max_fragment_length". A client <bcp14>MUST</bcp14> treat receipt of more than one of "large_record_size_limit", "record_size_limit", and "max_fragment_length" as a fatal error, and it <bcp14>SHOULD</bcp14> generate an "illegal_parameter" alert.</t>
      <t>The Path Maximum Transmission Unit (PMTU) in DTLS also limits the size of records. The record size limit does not affect PMTU discovery and <bcp14>SHOULD</bcp14> be set independently. The record size limit is fixed during the handshake and so should be set based on constraints at the endpoint and not based on the current network environment. In comparison, the PMTU is determined by the network path and can change dynamically over time.</t>
    </section>
    <section anchor="limits-on-key-usage">
      <name>Limits on Key Usage</name>
      <t>The maximum record size limit is an input to the AEAD limits calculations in TLS 1.3 <xref target="RFC8446"/> and DTLS 1.3 <xref target="RFC9147"/>. Increasing the maximum record size to more than 2<sup>14</sup> + 256 bytes while keeping the same confidentiality and integrity advantage per write key therefore requires lower AEAD limits. When the "large_record_size" has been negotiated record size limit larger than 2<sup>14</sup> + 1 bytes, existing AEAD limits <bcp14>SHALL</bcp14> be decreased by a factor of (LargeRecordSizeLimit) / (2^14-256). For example, when AES-CGM is used in TLS 1.3 <xref target="RFC8446"/> with a 64 kB record limit, only arounf 2<sup>22.5</sup> records (about 6 million) may be encrypted on a given connection.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Large record sizes might require more memory allocation for senders and receivers. Additionally, larger record sizes also means that more processing is done before verification of non-authentic records fails.</t>
      <t>The use of larger record sizes can either simplify or complicate traffic analysis, depending on the application. The LargeRecordSizeLimit is just an upper limit and it is still the sender that decides the size of the inner plaintexts up to that limit.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign a new value in the TLS ExtensionType Values registry defined by <xref target="RFC8447"/>:</t>
      <ul spacing="normal">
        <li>
          <t>The Extension Name should be large_record_size_limit</t>
        </li>
        <li>
          <t>The TLS 1.3 value should be CH, EE</t>
        </li>
        <li>
          <t>The DTLS-Only value should be N</t>
        </li>
        <li>
          <t>The Recommended value should be Y</t>
        </li>
        <li>
          <t>The Reference should be this document</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
        <reference anchor="RFC8449">
          <front>
            <title>Record Size Limit Extension for TLS</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>An extension to Transport Layer Security (TLS) is defined that allows endpoints to negotiate the maximum size of protected records that each will send the other.</t>
              <t>This replaces the maximum fragment length extension defined in RFC 6066.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8449"/>
          <seriesInfo name="DOI" value="10.17487/RFC8449"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6083">
          <front>
            <title>Datagram Transport Layer Security (DTLS) for Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Seggelmann" initials="R." surname="Seggelmann"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>This document describes the usage of the Datagram Transport Layer Security (DTLS) protocol over the Stream Control Transmission Protocol (SCTP).</t>
              <t>DTLS over SCTP provides communications privacy for applications that use SCTP as their transport protocol and allows client/server applications to communicate in a way that is designed to prevent eavesdropping and detect tampering or message forgery.</t>
              <t>Applications using DTLS over SCTP can use almost all transport features provided by SCTP and its extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6083"/>
          <seriesInfo name="DOI" value="10.17487/RFC6083"/>
        </reference>
      </references>
    </references>
    <?line 182?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank <contact fullname="Stephen Farrell"/>, <contact fullname="Benjamin Kaduk"/>, and <contact fullname="Martin Thomson"/> for their valuable comments and feedback. Some of the text were inspired by and borrowed from <xref target="RFC8449"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+Va3XbbNhK+11Ng1Ru7teRIdtzUzXbj2Erjru14I7s9OT1d
H4iEJMQkyBKkZW3sfZXdB+nV9sX2mwFIkZLsJj3dq3VOKwoEBoP5/WagTqfT
ynUeqX3RPpHZRIm3KkiyUAz1P5QV4yQTFydDIU0ojuhhpvMppoRFoELx5kZl
UyXDdkuORpm6eZRGuxXIXE2SbL4vbB62WmESGBlj4zCT47wTyzy3NjGdPLId
W6Qq67wv4lHSyZhYJ9KxzjtPdlq2GMXaWp2YfJ5i+fHg4pUQnwkZ2QQcaBOq
VOF/Jm9vibYKdZ5kWkb05fjgJT7AT/v47cWrdstgA5Xtt0Jwtt8KEmOVsYXd
F3lWqBbOs9OSmZKgOlRBkel83m7Nkux6kiVFitGLTBqbJlkuTuRcZWIx61rN
MTHcb4mOMOo2FxNlVCZzcE1DhdE4FD/aVGbXkTYTEWqbZ3pU5BBtpMKJylo3
yhTgTIjf3lEIJ472D2CQyH1LS2g8ljrCOOT6Qqt83E2yCQ3LLJhieJrnqd3f
3qZZNKRvVLectk0D26MsmVm1jfXbtG4CEyhGWKliad4nZvsxhdGCCNK1eW0r
v7DrKHV18iiJ7U+wj+40j6N2qyWLfJpAsR2hjc6hfej0uy54sUXmjO48U8Wv
/xKnnipeufHvkqlZ8xLC2BeDTAf+u3JCfY/Z3ZKzF8q/7wZJ3Nj6dWPrCxtM
k7EyelLt+loaA1dpvOEth1rFsMnFjlOe2c2rmS8m8W3XqLyx4Wlzw19/uVWL
I57qYCpVtBjmnU5//cXYHCZ1afRNVyRjcZCmkYYtDgOtTKBqTOSFwsoX42kn
LhSv6oaq1TJJBlnAgPZbmPv21WG/1/tq3z0+6325Wz7u7u4tHr9cPJZzv+rR
aEub8TLBvSfPdvDc6XSEHMFbZJC3WhSXet0d4QzBCrYEkU8VBAKnE2kktcnJ
CTcw9ZjGzsuhTWERpESeiP5zGNU3vd3n2/QpvhA9MZrDcLfEbAqBgVYQFSGU
lBjFbziw0S6IGzmiDfvfFofKqbxRQoqdDs9LfJgUYcE70ZqxvoVkx1pFYDhJ
5c+FuqL1vDxSExnMr9x5rrCagl1XXEy1FYiaRUy7hWqsyWYkB2gcBYrANFCX
OWJhBJ8VCINpgoNa2tYg+MI8cuIsojCdITLc6riIV+REMtkSRbqQy07fy6Uj
+k/3apKJFOSOdEARpzxo12ko1mEYwSw+E8cmzxJM4vD3/6Ovk2FnJC3WpVmS
J0ESQVsZnTJAUrGQWDQXBb3HJpYCuRJRYiYIZTcYpANnYwnHw6MIEOV1ICM8
jzMJ04c0sWALXo7DSmhYRdg/jim1cJ6BwnNKVrYL+QubxGppLe0tAjAImdEZ
ixRBFaZBeQXuf+TsKlVBTlYWK2slcjuSKYQH/qzKbnTgJABKtpphOe3HxJe3
M9ikWVIYi9qxhr2bjKyZ6Y0EgiCujIJUrM4psWB/IUNkeRwZ4ilF7c9BOseZ
J+QyLJUtmJ0topzsFdS8LnCcw/NLPkqsYmAUMhJbxCkLkoZrW0DKaaRukXW7
4oAcjWg13cTxXBr4LCmiUCg6gmH/W9Bq8EYMyShOLDvwQj0spQ8ffPy7vxcb
rBuyUzE8vDjf/E2xkQKtwnxiilAGuyL89KGY0mbNlSZNGr1y+fwPjjQPebiP
dovN8OVGRjosTYACSIVK8YUWqNp8tnyQignVwM+8H7cfPZE7P+/B4qacdH8P
LVcKi+Yk63UyM2pWMYZPBsKHOp2qjA9a55XgH0JJeDUNM1G5I4tOGTmKVgKh
/c1Y7IB55oF5FYjFK9i/upVksFuPU+3traEawLlG8GiEBmBOUOZtdvzbCE5Y
7VXFXUuGOy4ijlrwImRpFupxcoHj3egsMSQ46zT2MYamKQKS18FLSDrMhMsu
o+RWWR+lyA2dhPul63Up+1yoDI6XRMlkTgavBMA52Qc8s316ObygyoA+xdkb
fn47+Nvl8dvBET0PXx+cnFQPLT9j+PrN5cnR4mmx8vDN6eng7MgtxqhoDLXa
pwfv2i7ntN+cXxy/OTs4aZOgmjZFWQKKGSmXBNJMkeylbSGfIRGMnIm+PDz/
z797uzDVP3mshdDgvhDawpfZVBm3W2LgA+4r3GDekoj1MnMBBxFNpgimEcIv
EomdJjMjYLcK0vv8R5LMT/vi+ShIe7vf+AE6cGOwlFljkGW2OrKy2AlxzdCa
bSppNsaXJN3k9+Bd43sp99rg87+gAFOi03v2l29abDKPWuagtExnTtXXI5lL
ypz5x9s1hwlXLlO1fEJTAHD/6f+AekUBG9jpr5359WJia917BCeTkKcSR2UI
duAOmvdwCQyvBAYO7bSojOvE60xHXKfCMnEsRYWiOM4XQGsZW7HhpZTssGhD
d1V3y8+hcETJSZkJPBkMrGYBBN3BwRF5tqyEhbOUu4VdJ3uWsvd2Bw1dxmN7
l1zAWM8wO7xl5pKZxPTG+VwyCxHMcm39YVxJKQ7MYhoFRNAIK4JuXaYaUKda
LHSDKLxLQ7rkXyVth94bXHjhUhr2B6vTJgIVydBvwz7pWwyUdcewxKhKdhSi
x0jTbTg71n2NCUd/zLYH74RCMMakj92cui+htkGpADerKeQywhBQqgyopkRm
14GqQBJKYnk/bEycWG8DpcKaZmqHGc15POGDlFzAwAYVqKk4Yt1/HDziLCUJ
taCMsDHibCnLvV2Swio2bib2NTLJgVW9otKcjiorwguCbkNpK02oLMNbcsaF
koxow5tRt0RXqcxkDHfMvIa8ZxG8BzU6sP34iOZsfwBUPU+Rs6rQWFUHXXFU
ZKRPguEOX2/V/cXiRYUfYRdvvc7JxWwxeo88X2I5XlFaA0Fbq/KSAwg1tFN5
rdzrlMtP79ZI/zW/LQswKhyY+DSxFXT3MFSGficl0gSFx0hHQP+1KFkJINaT
ac6BCsl7cQ6UkkuHhpQvjd9ThaV0LKuptPPFa7YlRUD2CnBqPNbBFQpGwALS
e3XW5Xd0PGJlWW7rYyY4+gEA4VOy1+KAyFmfUzEklov7pTNwSHb16TK3bOGl
N69B0Iu6VVPLCfW5T7WYu26aw5d8Pj/Rhwiu4oXrElN74NGg4KNihlQ3btop
o996ZVsH0E/JxShz9/Y8IgZA1ssUViJAf7cBwj0NZP+KBoM5ClQzcFlO6O+W
E9yh/UEx5vsWi86HUa70E0d6PIbTILS42dbb7si7BBwprKaEOnPrCFHXwYky
QBQfRNHb23iCMrTo72706HOnv9HfFPfihGnXcEp9sVOV+EDP9GephYGa0C3q
EobYXLylPyqHabN9L9uvV1/2d/e9TNa83OmvvLx3T/fie5l9ErfVfC/AiqJr
D0E0Pgh6N/px1aa7buVPvPR+jdHXAZ7zr6Pf72BkOjzHmwfKCoZDlePJ9YVp
mcn8MvVzgaTiY0nJzZJruTJajpD8lwxGPBE90UcJuSueij3xJY190Vn6R4N3
T/Cvd3d4N7w7uRuIwd3DM8VhZdfi+AjfBewOuY6uX+j1BhxPGlTu/MeEtkXJ
MhKl+y4O8V9nidbG4fHRZikpR60W9Tb5uxjywiEEQ31y4W6VPP21XBODvOak
oQlP/xkFdcSNEaIE0x/w3EGaBEzurtrpjHd6TDK9vS3R3+U7L0SRO78DUfZb
i3KQhOT52PSDqzQb1lhHJwCCFbj4dMvk98utIc6u1AMq7Q1naMAosr+1VY9D
QLoGacdZEjOETRWF8rVgs4ZgF5z7LPkog8vI/3fx5EDXx+ZdJPXf1Q/hGLCo
rZdAymzKKIoat3VqBCMcRcovByUybGLiBX+woZRuUrnuipNMOclQGx55+MET
bq3rzflWCUrXq7JTeuX8qk2cBJFWD2Lj/93WK+DazYVyvWg/BWefSyjv1Nfm
fL3rb7fpIg7J8Pz04nKTsjFHfrrkXgDfBbyp4dV15XCYKGc1cDtKsUSUyzCq
zuZ1qxiVMLq6RY/mD1Gt8IVHt03gTUTBrJ1yoebpuvuQpNYZpLpyqddAKxlC
l5MZuxQZQxF/q1FvJXJ/nP0h07asJ/iI1FQjkcecjzykKymkJHnai4r6AIwD
FYdzI2O6Z4nmrr+e61hxF/HECR3c/FXNxSWhdafAsq+yVj5UOZu0qLA3NzW8
/rBLUEQcEG29rV22nvfu75ttY35Bl6PUkz6ubpEa3Z06Fw3/W7kvq/WO+Rrv
Wqm0pGZhqaSisSYL0JLLHbZxhL5Jxt/CG2lyuu+hW6MZxlxjlbCpGid80/Bz
oamvjeofU2pH74pHKo02bMjCXpSpx6ZV6T58t1S/DFS32nIkrEvetSFhkqEq
r39gG+TSQZ7w5dfGuiC+CZiw0f97b7cD2W0uNdepuYpNhp3Db09LNP6QVj2g
2tsV1y+rZgvtsOUbV1lSmHFZE/S7T/25yii+AWQFm9pDmI4imM8m1D+n81SY
k+xUigkSjamjfjLk8icjhHQs9Ot+lWJ9B7Eu6LIk8Ip0xuTvx+jex98zUnVB
OUBlVfnKJZNdvjjxGmvswAEtVgh7Lp/yHsi/fMFHd3TUFqcbXGdTIAuE6jeG
nkxiOvRjD7LSoJLPWOrI+vhKwBYT1+1Nfu/bV1ZDi3o8J5DB/UnaA57jcAqO
JaO51bAnFxb5ttsZcA3WuDi5Nv3jGO8Lutcz5TWrqzdd2sBbGCnQPfsei9JJ
A/apy9ZqvZJ94CaH15TF/Gfi+ODsYEXLPMhtFoBIm7vmh4SwJ2QxdIvloYqp
AH7Vxbmgru739JrWT+j3SvMK7cODShtHgOJfbIjPhWh0yMUZBZZFSnggI9fX
lv7j+2jV0sPXW2IwqM+kONl5Q/6zPPesPu0tX5OTkMOVie+aE7n6DeoTGvc0
7mcOIxlck7QPgmuTzOiHW3y91fqw7woBFf65PYaZq/a9s0j346TyWjjS1/5X
BtJcQ4IfhrlKKZa8kkh4UXR/f79Fwy+VeY/UhPQjw+KaR8l68OZUZjkFmmkS
I/vhTVnva9cM5BtFd+bceehYqZDY7ooh/SzAGxWDWm6kaWNTOLyLipg/SoBy
ZtRIIMxavxpt/RftP8DeQSgAAA==

-->

</rfc>
