<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version  (Ruby 3.2.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2104 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC9580 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9580.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-openpgp-persistent-symmetric-keys-01" category="std" consensus="true" submissionType="IETF" updates="9580" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Persistent Symmetric Keys in OpenPGP</title>

    <author initials="D." surname="Huigens" fullname="Daniel Huigens" role="editor">
      <organization>Proton AG</organization>
      <address>
        <postal>
          <street>Route de la Galaise 32</street>
          <city>Plan-les-Ouates</city>
          <code>1228</code>
          <country>Switzerland</country>
        </postal>
        <email>d.huigens@protonmail.com</email>
      </address>
    </author>

    <date year="2025" month="January" day="30"/>

    <area>sec</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines new algorithms for the OpenPGP standard (RFC 9580) to support persistent symmetric keys, for message encryption using authenticated encryption with additional data (AEAD) and for authentication with hash-based message authentication codes (HMAC).
This enables the use of symmetric cryptography for data storage (and other contexts that do not require asymmetric cryptography), for improved performance, smaller keys, and improved resistance to quantum computing.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://twisstle.gitlab.io/openpgp-persistent-symmetric-keys/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-openpgp-persistent-symmetric-keys/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        OpenPGP Working Group mailing list (<eref target="mailto:openpgp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/openpgp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/openpgp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/twisstle/openpgp-persistent-symmetric-keys"/>.</t>
    </note>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>The OpenPGP standard <xref target="RFC9580"></xref> has supported symmetric encryption for data packets using session keys since its inception, as well as symmetric encryption using password-derived keys.
This document extends the use of symmetric cryptography by adding support for persistent symmetric keys which can be stored in a transferable private key, and used to symmetrically encrypt session keys, for long-term storage and archival of messages.
This document uses authenticated encryption with associated data (AEAD) as defined by <xref target="RFC9580"></xref>.</t>

<t>The OpenPGP standard also supports the use of digital signatures for authentication and integrity but no similar symmetric mechanism exists in the standard.
This document introduces hash-based message authentication codes (HMAC) as a symmetric counterpart to digital signatures, for long-term storage and archival of attestations of authenticity and certification.</t>

</section>
<section anchor="conventions-used-in-this-document"><name>Conventions Used in This Document</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"></xref>.
Any implementation that adheres to the format and methods specified in this document is called a compliant application.
Compliant applications are a subset of the broader set of OpenPGP applications described in <xref target="RFC9580"></xref>.
Any <xref target="RFC2119"></xref> keyword within this document applies to compliant applications only.</t>

</section>
<section anchor="motivation"><name>Motivation</name>

<t>When compared to asymmetric cryptography, symmetric cryptography can provide improved performance and equivalent security with smaller keys.
In contexts that do not require asymmetric cryptography, such as secure data storage where the same user encrypts and decrypts data, symmetric cryptography can be used to take advantage of these benefits.</t>

<t>Additionally, asymmetric algorithms included in OpenPGP are vulnerable to attacks that might become possible on quantum computers <xref target="Shor"></xref>.
Symmetric cryptography is also affected by quantum computing but to a lesser extent, which can be countered by using larger keys <xref target="Grover"></xref>.
While the standardization of quantum-secure asymmetric cryptography in OpenPGP is ongoing <xref target="PQCinOpenPGP"></xref>, and will be required to secure communications, there is a large body of existing messages encrypted with classical algorithms.
Once persistent symmetric keys are available, these messages can be protected against future compromises efficiently by symmetrically re-encrypting the session key, and storing the message symmetrically encrypted for long-term storage and archival.</t>

</section>
<section anchor="reusing-and-renaming-packets"><name>Reusing and Renaming Packets</name>

<t>Rather than introducing new packets for storing persistent symmetric keys, the existing Secret-Key packets are reused for this purpose.
To indicate the type of keys, two algorithms (AEAD and HMAC) are registered, whose IDs can be used in the place of public-key algorithm IDs.
To accommodate these additions, we propose renaming the Public Key Algorithms registry to Persistent Key Algorithms.</t>

<t>Similarly, we reuse the Signature packet for "symmetric signatures".
For session keys encrypted with persistent symmetric keys, while a Symmetric-Key Encrypted Session Key packet exists, its semantics don't match our requirements, as it's intended to encrypt the session key with a user-provided password, and doesn't offer a way to store a reference to a persistent key.
Therefore, we reuse the Public-Key Encrypted Session Key packet instead, which does offer the desired semantics.
Nevertheless, given this usage, the naming of these packets may be confusing, so we propose to rename them to "String-to-Key Encrypted Session Key packet" and "Persistent Key Encrypted Session Key packet", instead.</t>

</section>
<section anchor="key-algos"><name>Persistent Symmetric Key Algorithms</name>

<t>This document defines two new algorithms for use with OpenPGP, extending table 18 of <xref target="RFC9580"></xref>.</t>

<t>In addition, it reserves space for future, private and experimental persistent symmetric key algorithms.</t>

<texttable title="Persistent Symmetric Key Algorithm registrations" anchor="key-algo-registrations">
      <ttcol align='right'>ID</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>Public Key Format</ttcol>
      <ttcol align='left'>Secret Key Format</ttcol>
      <ttcol align='left'>Signature Format</ttcol>
      <ttcol align='left'>PKESK Format</ttcol>
      <c>128</c>
      <c>AEAD</c>
      <c>sym. algo, AEAD algo, fingerprint seed [<xref target="key-aead"/>]</c>
      <c>key material</c>
      <c>N/A</c>
      <c>IV, ciphertext [<xref target="pkesk-aead"/>]</c>
      <c>129</c>
      <c>HMAC <xref target="RFC2104"/></c>
      <c>hash algo, fingerprint seed [<xref target="key-hmac"/>]</c>
      <c>key material</c>
      <c>authentication tag [<xref target="sig-hmac"/>]</c>
      <c>N/A</c>
      <c>130 to 140</c>
      <c>Reserved for Future Persistent Symmetric Key Algorithms</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>200 to 210</c>
      <c>Private or Experimental Persistent Symmetric Key Algorithms</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
</texttable>

<t>These algorithm IDs can be used to store symmetric key material in Secret-Key Packets and Secret-Subkey packets (see section 5.5.3 of <xref target="RFC9580"></xref>).
The AEAD algorithm ID (and future, private or experimental symmetric encryption algorithms) can be used to store session keys encrypted using AEAD in PKESK packets (see section 5.1 of <xref target="RFC9580"></xref>).
The HMAC algorithm ID (and future, private or experimental symmetric authentication algorithms) can be used to store HMAC-based signatures in Signature packets (see section 5.2 of <xref target="RFC9580"></xref>).</t>

<t>As the secret key material is required for all cryptographic operations with symmetric keys, implementations SHOULD NOT use symmetric algorithm IDs in Public-Key Packets or Public-Subkey Packets, and SHOULD NOT export Public-Key Packets from Secret-Key Packets holding symmetric key material.</t>

<t>When storing encrypted symmetric key material in a Secret-Key Packet or Secret-Subkey Packet, AEAD encryption (S2K usage octet 253, see section 3.7.2.1 of <xref target="RFC9580"></xref>) MUST be used, to ensure that the secret key material is bound to the fingerprint.
Implementations MUST NOT decrypt symmetric key material in a Secret-Key Packet or Secret-Subkey Packet that was encrypted using a different method.</t>

<section anchor="key-aead"><name>Algorithm-Specific Fields for AEAD keys</name>

<t>The public key is this series of values:</t>

<t><list style="symbols">
  <t>A one-octet symmetric algorithm identifier (see section 9.3 of <xref target="RFC9580"></xref>)</t>
  <t>A one-octet AEAD algorithm (see section 9.6 of <xref target="RFC9580"></xref>)</t>
  <t>A 32-octet random seed to randomize the key fingerprint</t>
</list></t>

<t>The secret key is this single value:</t>

<t><list style="symbols">
  <t>Symmetric key material of the appropriate length for the given symmetric algorithm</t>
</list></t>

</section>
<section anchor="key-hmac"><name>Algorithm-Specific Fields for HMAC keys</name>

<t>The public key is this series of values:</t>

<t><list style="symbols">
  <t>A one-octet hash algorithm identifier (see section 9.5 of <xref target="RFC9580"></xref>)</t>
  <t>A 32-octet random seed to randomize the key fingerprint</t>
</list></t>

<t>The secret key is this single value:</t>

<t><list style="symbols">
  <t>Symmetric key material of the length of the hash output size of the given hash algorithm</t>
</list></t>

</section>
<section anchor="pkesk-aead"><name>Algorithm-Specific Fields for AEAD encryption</name>

<t><list style="symbols">
  <t>A starting initialization vector of size specified by AEAD mode</t>
  <t>A symmetric key encryption of the plaintext value described in section 5.1 of <xref target="RFC9580"></xref>, performed using the selected symmetric-key cipher operating in the given AEAD mode, including the authentication tag.</t>
</list></t>

</section>
<section anchor="sig-hmac"><name>Algorithm-Specific Fields for HMAC signatures</name>

<t><list style="symbols">
  <t>An authentication tag of appropriate length for the hash algorithm</t>
</list></t>

<t>Although not required by HMAC, to maintain consistency with existing signature algorithms, HMAC tags are produced from appropriately hashed data, as per section 5.2.4 of <xref target="RFC9580"></xref>.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Security considerations are discussed throughout the document where appropriate.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="updates-to-public-key-algorithms"><name>Updates to Public Key Algorithms</name>

<t>IANA is requested to rename the "OpenPGP Public Key Algorithms" registry to "OpenPGP Persistent Key Algorithms", and add the entries in <xref target="key-algo-registrations"/> to the registry.</t>

</section>
<section anchor="updates-to-packet-type-descriptions"><name>Updates to Packet Type Descriptions</name>

<t>IANA is requested to modify the "OpenPGP Packet Types" registry as follows:</t>

<t><list style="symbols">
  <t>For Packet Tag 1 ("Public-Key Encrypted Session Key Packet"), change the Packet Type Description to "Persistent Key Encrypted Session Key Packet".</t>
  <t>For Packet Tag 3 ("Symmetric-Key Encrypted Session Key Packet"), change the Packet Type Description to "String-to-Key Encrypted Session Key Packet".</t>
</list></t>

</section>
</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>An initial version of this draft was written by Dan Ristea (Proton AG), with guidance from Dr Philipp Jovanovic (University College London) and the editor.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC2104;
&RFC2119;
&RFC9580;


    </references>

    <references title='Informative References'>

<reference anchor="Grover" target="https://arxiv.org/abs/quant-ph/9706033">
  <front>
    <title>Quantum mechanics helps in searching for a needle in a haystack</title>
    <author initials="L." surname="Grover">
      <organization></organization>
    </author>
    <date year="1997"/>
  </front>
</reference>
<reference anchor="Shor" target="http://dx.doi.org/10.1137/S0097539795293172">
  <front>
    <title>Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer</title>
    <author initials="P." surname="Shor">
      <organization></organization>
    </author>
    <date year="1997" month="October"/>
  </front>
</reference>
<reference anchor="PQCinOpenPGP" target="https://datatracker.ietf.org/doc/html/draft-wussler-openpgp-pqc-03">
  <front>
    <title>Post-Quantum Cryptography in OpenPGP</title>
    <author initials="S." surname="Kousidis">
      <organization></organization>
    </author>
    <author initials="F." surname="Strenzke">
      <organization></organization>
    </author>
    <author initials="A." surname="Wussler">
      <organization></organization>
    </author>
    <date year="2023" month="October"/>
  </front>
</reference>


    </references>


<section anchor="test-vectors"><name>Test Vectors</name>

<t>To help implementing this specification a set of non-normative examples follow here.</t>

<section anchor="v6-key"><name>V6 Key</name>

<section anchor="v6-sample-sk"><name>Transferable Secret Key</name>

<t>Here is a Transferable Secret Key consisting of:</t>

<t><list style="symbols">
  <t>A v6 HMAC Private-Key packet</t>
  <t>A v6 direct key self-signature</t>
  <t>A User ID packet</t>
  <t>A v6 positive certification self-signature</t>
  <t>A v6 AEAD Private-Subkey packet</t>
  <t>A v6 subkey binding signature</t>
</list></t>

<t>The primary key has the fingerprint <spanx style="verb">39d3d9b684974edecfa0a31ccfc7a646eca61ee616a42d8e18e2741110994ac7</spanx>.</t>

<t>The subkey has the fingerprint <spanx style="verb">8431344883f607c31fc112c501b26fb4c3a3696b0f1a1accf3eba78107dc2b3a</spanx>.</t>

<figure><sourcecode type="application/pgp-keys" name="v6-sample-sk.asc"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xUwGZyvYOIEAAAAhCA3ux3f7BvQ1upltl0rGFcLzI2SsdGubajtqJJY2/oIW
AAGg3oHoaKR5aHKIyL2zd3yqW+QYxwO/5+eG55o+6vJ4wpsGH4EKAAAATAWC
ZyvYOAMLCQcFFQoIDgwEFgACAQKbAwIeCSKhBjnT2baEl07ez6CjHM/Hpkbs
ph7mFqQtjhjidBEQmUrHDScJAwcDCQEHAQkCBwIAAAAA3sogzVUG2DQCECx0
MorsTaC0oHMN0ETvGUzAPY9pTbhOzIc2tbifKFBZFOmtqSfEmojm6wlONxjV
xnSHVb6tk9fRXc0xUGVyc2lzdGVudCBTeW1tZXRyaWMgS2V5IDxwZXJzaXN0
ZW50QGV4YW1wbGUub3JnPsJ7BhOBCgAAACwFgmcr2DgCGQEioQY509m2hJdO
3s+goxzPx6ZG7KYe5hakLY4Y4nQREJlKxwAAAADB2iCjfiojIe4fD0PtRZtx
8cPy3aypEvkhvOXRNigUZ9tmCRXvw4pam4MAutVITBEzNfWRwMB+21jHagW2
F7EqctFlx00GZyvYOIAAAAAiCQPy2XG2ooycqg0WRkSlk6VEQCqzpLr9dx+N
svBQ5nD1DgAUTRiLVhjHRRVtHJ6nxCcU6XywcFGJwB4cTEsFploI7sJ7BhiB
CgAAACwFgmcr2DgCmwwioQY509m2hJdO3s+goxzPx6ZG7KYe5hakLY4Y4nQR
EJlKxwAAAAA/HiCZJSXVUlyjGziL9ze5m3714IaRxdzZxdoX9+d5i2uQmkiG
wPaOHBlObQTN1Fj2v9V7Phw01tWvxit+bF2uX3KA
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

</section>
<section anchor="encrypted-and-signed-message"><name>Encrypted and Signed Message</name>

<t>Here is the message "Testing\n" encrypted and signed using the secret key <xref target="v6-sample-sk"/>, consisting of:</t>

<t><list style="symbols">
  <t>A v6 PKESK packet</t>
  <t>A v2 SEIPD packet</t>
</list></t>

<t>The hex-encoded AEAD key used to encrypt the session key is <spanx style="verb">144d188b5618c745156d1c9ea7c42714e97cb0705189c01e1c4c4b05a65a08ee</spanx>.</t>

<t>The hex-encoded session key is <spanx style="verb">2ff2190e39a3b12fdf35b0da30a2895f215628cdb237b58686da8d017da59acb</spanx>.</t>

<figure><sourcecode type="application/octet-stream" name="v6-sample-message.asc"><![CDATA[
-----BEGIN PGP MESSAGE-----

wWIGIQaEMTRIg/YHwx/BEsUBsm+0w6Npaw8aGszz66eBB9wrOoAofTzujc+B
iNy2F5sK03XWU6C3s+NvH6+TvpyhtOf7DIOjm92QF+qHYlZindGWZHzt332P
CS6qJJ4GEL5+3dLAVwIJAwx3V5y6DdXA6MEDX/osOU+X6ySxDTxrIFbHuHfE
6Q3NtLj08eJO/LNODMS/JXKP78LOU7vJfWB6sKeQVO5GUhbY01wD7kht/Y54
UPTnWMGOxrMZgWSC41jHZq0L0Adqxi/FX7Z595aYTfvN/cVXvVvit2ytdRpb
yv+p1SUE0eIgNsONHCrP6l8pxHgMya1vdTSkMD8SvhIoBqAl3baTiL/o600Y
Od/sXGAkoddrE78qVRhnAGuxciGcpCl4P5qAX/nje7FeDjyZU7pmUW9/4FWA
R3p4olY/wUC7bNlgw8xjCG42EnWiaLJl/HewdjoI0R/4ncVW6YyZXTB671eq
3ycJTVrG4HB7XdQ76Y6P6OhteMrKhA==
-----END PGP MESSAGE-----
]]></sourcecode></figure>

</section>
</section>
<section anchor="v4-key"><name>V4 Key</name>

<section anchor="v4-sample-sk"><name>Transferable Secret Key</name>

<t>Here is a Transferable Secret Key consisting of:</t>

<t><list style="symbols">
  <t>A v4 HMAC Private-Key packet</t>
  <t>A User ID packet</t>
  <t>A v4 positive certification self-signature</t>
  <t>A v4 AEAD Private-Subkey packet</t>
  <t>A v4 subkey binding signature</t>
</list></t>

<t>The primary key has the fingerprint <spanx style="verb">342723d5eb7656bb23d58f738a1e196684722f7d</spanx>.</t>

<t>The subkey has the fingerprint <spanx style="verb">3b642f094fd733630916e9987a60b1ebb00db44c</spanx>.</t>

<figure><sourcecode type="application/pgp-keys" name="v4-sample-sk.asc"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xUoEZyvXLYEIbSAl/54Zi8cO14yFLEN07P4SWls/olxaQPRgLp3wi4YAYsgH
BfxUCmKztJ/GCMoZpzcDiRar1QNUtavBbjhDLFQNis0xUGVyc2lzdGVudCBT
eW1tZXRyaWMgS2V5IDxwZXJzaXN0ZW50QGV4YW1wbGUub3JnPsKvBBOBCgCF
BYJnK9ctAwsJBwmQih4ZZoRyL31FFAAAAAAAHAAgc2FsdEBub3RhdGlvbnMu
b3BlbnBncGpzLm9yZ1RH1kFeXW93pkwUCKXlxKPIP24S8Gx85L+Nfcdbwysf
BRUKCA4MBBYAAgECGQECmwMCHgEWIQQ0JyPV63ZWuyPVj3OKHhlmhHIvfQAA
H0erX8bHYcMh3wEh7gI8R0t2VpQL+eckhMxXr2XiWJIDhcdLBGcr1y2ACQO0
cicGpC7vE6S5e2NURUrWVNZ0l8ZBR4BgQt2OylIxUgCysTYjJr5iYlYhrbu4
u31l9WfkHryVUParqhMfiDvVaxAXwpoEGIEKAHAFgmcr1y0JkIoeGWaEci99
RRQAAAAAABwAIHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcme32OV29BgE
u2zWfD1hlKfiJ1mUHFkM0tEgUo0PzQPWHQKbDBYhBDQnI9Xrdla7I9WPc4oe
GWaEci99AAAVa5iRsRCeckD2kJwEmPqOg1uyUw9UuvQrqWE+MjVSDH+h
=rt22
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

</section>
<section anchor="encrypted-and-signed-message-1"><name>Encrypted and Signed Message</name>

<t>Here is the message "Testing\n" encrypted and signed using the secret key <xref target="v4-sample-sk"/>, consisting of:</t>

<t><list style="symbols">
  <t>A v3 PKESK packet</t>
  <t>A v1 SEIPD packet</t>
</list></t>

<t>The hex-encoded AEAD key used to encrypt the session key is <spanx style="verb">b2b1362326be62625621adbbb8bb7d65f567e41ebc9550f6abaa131f883bd56b</spanx>.</t>

<t>The hex-encoded session key is <spanx style="verb">0010c335e6ce3a2553ad495ef6bdd30f57d6a4a07b74ed3c1bfd2a49226446e7</spanx>.</t>

<figure><sourcecode type="application/octet-stream" name="v4-sample-message.asc"><![CDATA[
-----BEGIN PGP MESSAGE-----

wUkDemCx67ANtEyAqv4eGGoqrh/gmvpZF1DPEGhbA1EcNZ9VOoWL9Rh5uemj
F0Bk5l9Sj/UlDIS7f3zWFbtF4eAdz7DF4z4NA+mZ0sAiAXgdTp0+3Dw58DcA
WghfYVc4ZVDv902UqXkMabEQEyeZUvclFbTTHPjMX2JOx0Aav9Rw6LD+Mtpv
6MbwAgaVIUdcVzTEnuIwTuXroO85oKk9zyDyfDDfB52UcclqXisAp6+Lw9U9
og3X0iK0R0vTdea3i/JY71ZhAWYKKXN/bjQVB79Wcd/3XX+PmlCUDreGTSAJ
OQMIwIOiX+3TgEhK45PQTBc/2gKtv1rr7WiycSA9l9H3OLCv7OuSKHXmk8Bm
vnkzTpu24LIR3Diq+GVcpAbASFkKVCpvGuBDKhjX2yfj+A==
=SH72
-----END PGP MESSAGE-----
]]></sourcecode></figure>

</section>
</section>
</section>


  </back>

<!-- ##markdown-source:
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
ZH33SJ3075A66VNSJ/3XpA7ARBCNPNYKcl7WNPK5uCqIRQSQoshA9gqCsCoY
P0PeRE2WhBWnSCujIIqyyCm8jBWlCOyQ03isaRxnaJKkfwgb0v8BSXOrUHfn
7UW1qY1UO5eXllZR7/HSodaudrlCXxrN7CDn2ns06A/XbU+MLWmhLoJ1gymt
9pPytnUMn3P1csddeke9Yg2Rzw+6kxDtStqLWWnXBl0reE9mmB+xmftkprUr
lQiZKdeY0uLZaSl6qMbBcyneDixTWi7d4aEt8rWamvxpqOpaF2qBUS3BBkPT
qNs7zelEjCaWbM0pOXrdO7a3ymHJDxv8pobnM0X0NpCWrbm9b/WbfUEaFev7
Yr792F0ByMeHYMWUhpNWWZU6pdIC9q8SLgXUoVNurKuz5mDAPR/6U1lcziL4
/0XstRqmvTUbzd1qoKpMg8P+vKg1FnrHFOOqWVg3i0MuFKbeoP2I9Y3Z2c99
YW7NnpsVUzfapbru8wdBLQ96HKNbIHC5sKvKozwWupPhxJ9Nu0vOLi5LQ6m0
HoRC72A395N1+RCMFy/Pft5a2AvT1yKJiUTeVmarTcM/TCd95L+anZVV2U3R
Xp3HngtxAvy5oVI2xB+4503TxfUZquqWojDD4SAxaSlWm42uqTWGqrZVuMUc
kFTIEyPG4LJ4KZZe9UN+p2+xKPSmglJaV5lIOM5WFd60Wyvrmd9OGrVNhwur
64nL9Y+D/qwBpLxSWpilysBpKnPfsFGhqcz6uuRi5iQCnD1FeWsYDMtgpoqw
eY6r2/5rb81Hh0msTKLdwH+dVR87L9NRpfFoMr/5oSD8vyVQ0k8QKPEOgeL/
SgKlCRovyoIoyBqWBVkAKsMjQ9O0oqYVDDm/yssFLAEs6Uo+z61kpCHEQ8MJ
vadmABT+DIHiOJ7TRTGPZR2LSMjnRWRISh6vZM0wRG6Vh4OQhLiCRjpmUee1
lSEgSREEWYKGufA5Ev5lBGqyqeBteS8X1G5YPaivOwnX6+6rb+bW2523rPGV
frVuaipf1btLZdpzZ21laOYjvH1halxpk7eV0UtuYleao8JKPM5qWliTsGoc
C5WadJS66uN2yQWqpc7XxtjjHsVKnC9WdJWZrc3VYqpLy2llp3DC5HW+6SCt
Oqge8HKy0+2aNh43+i+dufDc23Mq2inDWG5XHjuht2PkjharazRtTgx9ehxX
nagZj6O57/aKebe1UY6HymFVqaxKeWGi6/br3ApUT35sQ84ojLsW55zV4obc
bmxgJFq550WBX5rqbNFqzbs57WUwLRWUmW7kxPn8sb+1y5OKj+vjkfrM9Aad
ZtzsWfNHcbyumi0p3x+MS3pOWLfCHe/7hZl10EeqYisNsdcu7wq9aNRqzLeb
YmnL7JzNcexFgtRuDsWK9fpYn+qeqqmj2qY1LXu7elSqtMyXuXBYvTwSWvPb
qFEQPiE3/wtzH1XcUjsAAA==

-->

</rfc>

