<?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-rfc2629 version 1.5.26 (Ruby 2.3.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cose-aes-ctr-and-cbc-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title abbrev="AES-CTR and AES-CBC with COSE">CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cose-aes-ctr-and-cbc-00"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Arm Limited</organization>
      <address>
        <email>hannes.tschofenig@arm.com</email>
      </address>
    </author>
    <date year="2022" month="October" day="19"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) data format is designed
for small code size and small message size. CBOR Object Signing and
Encryption (COSE) is specified in RFC 8152 to provide basic
security services using the CBOR data format. This document specifies the
conventions for using AES-CTR and AES-CBC as Content Encryption
algorithms with COSE.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>This document specifies the conventions for using AES-CTR and AES-CBC 
as Content Encryption algorithms with the CBOR Object Signing and Encryption
(COSE) <xref target="RFC8152"/> syntax. Encryption with COSE today uses
Authenticated Encryption with Associated Data (AEAD) <xref target="RFC5116"/> algorithms,
which provide both confidentiality and integrity protection.  However, there
are situations where another mechanism, such as a digital signature, is used
to provide integrity.  In these cases, an AEAD algorithm is not needed.  The
software manifest being defined by the IETF SUIT WG <xref target="I-D.ietf-suit-manifest"/>
is one example where a digital signature is always present.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
    </section>
    <section anchor="aes-alg">
      <name>AES Modes of Operation</name>
      <t>NIST has defined five modes of operation for Advanced Encryption
Standard (AES) <xref target="AES"/>. AES supports three key sizes: 128 bits,
192 bits, and 256 bits. The AES has a block size of 128 bits (16 octets).</t>
      <t>NIST has defined several modes of operation for use with AES <xref target="MODES"/>. Each
of these modes has different characteristics. The five modes are:
ECB (Electronic Code Book), CBC (Cipher Block Chaining),
CFB (Cipher FeedBack), OFB (Output FeedBack), and CTR (Counter).</t>
      <t>Only AES Counter mode (AES-CTR) and AES Cipher Block Chaining (AES-CBC) are
discussed in this document.</t>
    </section>
    <section anchor="aes-ctr">
      <name>AES Counter Mode</name>
      <t>When AES-CTR is used as a COSE Content Encryption algorithm, the encryptor
generates a unique value that is communicated to the decryptor. This value
is called an initialization vector (IV) in this document. The same IV and
key combination MUST NOT be used more than once. The encryptor can generate
the IV in any manner that ensures uniqueness.</t>
      <t>When using AES-CTR, each AES encrypt operation generates 128 bits of key
stream. AES-CTR encryption is the XOR of the key stream with the
plaintext. AES-CTR decryption is the XOR of the key stream with the
ciphertext. If the generated key stream is longer than the plaintext or
ciphertext, the extra key stream bits are simply discarded. For this reason,
AES-CTR does not require the plaintext to be padded to a multiple of the
block size.</t>
      <t>AES-CTR has many properties that make it an attractive COSE Content Encryption
algorithm. AES-CTR uses the AES block cipher to create a stream cipher. Data
is encrypted and decrypted by XORing with the key stream produced by AES
encrypting sequential counter block values. AES-CTR is easy to implement, and
AES-CTR can be pipelined and parallelized. AES-CTR also supports key stream
precomputation. While the IV must be communicated, the plaintext and
ciphertext are the same size.</t>
      <t>When used correctly, AES-CTR provides a high level of confidentiality.
Unfortunately, AES-CTR is easy to use incorrectly. Being a stream cipher,
reuse of the IV with the same key is catastrophic. An IV collision
immediately leaks information about the plaintext in both uses of AES-CTR.
For this reason, it is inappropriate to use this mode of operation with
static keys. Extraordinary measures would be needed to prevent reuse of an
IV value with the static key across power cycles. To be safe, implementations
MUST use fresh keys with AES-CTR.</t>
      <t>With AES-CTR, it is trivial to use a valid ciphertext to forge other
(valid to the decryptor) ciphertexts.  Thus, it is equally catastrophic to
use AES-CTR without a companion authentication and integrity mechanism. Implementations
MUST use AES-CTR in conjunction with an authentication and integrity mechanism, such as a
digital signature.</t>
      <t>AES-CTR keys may be obtained either from a key structure or from a recipient
structure.  Implementations encrypting and decrypting MUST validate
that the key type, key length, and algorithm are correct and
appropriate for the entities involved.</t>
      <section anchor="aes-ctr-alg">
        <name>AES-CTR COSE Algoritm Identifiers</name>
        <t>When using a COSE key for the AES-CTR algorithm, the following checks are made:</t>
        <ul spacing="normal">
          <li>The 'kty' field MUST be present, and it MUST be 'Symmetric'.</li>
          <li>If the 'alg' field is present, it MUST match the AES-CTR algorithm being used.</li>
          <li>If the 'key_ops' field is present, it MUST include 'encrypt' when encrypting.</li>
          <li>If the 'key_ops' field is present, it MUST include 'decrypt' when decrypting.</li>
        </ul>
        <t>The following table defines the COSE AES-CTR algorithm values. Note that
these algorithms are being registered as "Deprecated" to avoid accidental
use without a companion integrity protection mechanism.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="center">Value</th>
              <th align="center">Key Size</th>
              <th align="center">Description</th>
              <th align="right">Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">A128CTR</td>
              <td align="center">TBD1</td>
              <td align="center">128</td>
              <td align="center">AES-CTR w/ 128-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A192CTR</td>
              <td align="center">TBD2</td>
              <td align="center">192</td>
              <td align="center">AES-CTR w/ 192-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A256CTR</td>
              <td align="center">TBD3</td>
              <td align="center">256</td>
              <td align="center">AES-CTR w/ 256-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="aes-cbc">
      <name>AES Cipher Block Chaining Mode</name>
      <t>AES-CBC mode requires an 16 octet Initialization Vector (IV).  Use of a
randomly generated IV ensures that the encryption of the same plaintext
will yield different ciphertext.</t>
      <t>AES-CBC performs an XOR of the IV with the first plaintext block before it
is encrypted. For successive blocks, AES-CBC performs an XOR of previous
ciphertext block with the current plaintext before it is encrypted.</t>
      <t>AES-CBC will require padding; the padding algorithm specified
in Section 6.3 of <xref target="RFC5652"/> MUST be used prior to encrypting the
plaintext.  This padding algorithm allows the decryptor to unambiguously
remove the padding.</t>
      <t>The simplicity of AES-CBC makes it an attractive COSE Content Encryption
algorithm. The need to carry an IV and the need for padding lead to an
increase in the overhead (when compared to AES-CTR). AES-CBC is much safer
for use with static keys than AES-CTR. That said, as described in <xref target="RFC4107"/>,
the use of automated key management to generate fresh keys is greatly
preferred.</t>
      <t>AES-CBC does not provide integrity protection.  Thus, an attacker
can introduce undetectable errors if AES-CBC is used without a companion
authentication and integrity mechanism. Implementations MUST use AES-CBC in conjunction
with an authentication and integrity mechanism, such as a digital signature.</t>
      <section anchor="aes-cbc-alg">
        <name>AES-CBC COSE Algoritm Identifiers</name>
        <t>When using a COSE key for the AES-CBC algorithm, the following checks are made:</t>
        <ul spacing="normal">
          <li>The 'kty' field MUST be present, and it MUST be 'Symmetric'.</li>
          <li>If the 'alg' field is present, it MUST match the AES-CBC algorithm being used.</li>
          <li>If the 'key_ops' field is present, it MUST include 'encrypt' when encrypting.</li>
          <li>If the 'key_ops' field is present, it MUST include 'decrypt' when decrypting.</li>
        </ul>
        <t>The following table defines the COSE AES-CBC algorithm values. Note that
these algorithms are being registered as "Deprecated" to avoid accidental
use without a companion integrity protection mechanism.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="center">Value</th>
              <th align="center">Key Size</th>
              <th align="center">Description</th>
              <th align="right">Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">A128CBC</td>
              <td align="center">TBD4</td>
              <td align="center">128</td>
              <td align="center">AES-CBC w/ 128-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A192CBC</td>
              <td align="center">TBD5</td>
              <td align="center">192</td>
              <td align="center">AES-CBC w/ 192-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A256CBC</td>
              <td align="center">TBD6</td>
              <td align="center">256</td>
              <td align="center">AES-CBC w/ 256-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="iana-cons">
      <name>IANA Considerations</name>
      <t>IANA is requested to register six COSE algorithm identifiers for AES-CTR and
AES-CBC in the COSE Algorithms Registry <xref target="IANA"/>.</t>
      <t>The information for the six COSE algorithm identifiers is provided in
<xref target="aes-ctr-alg"/> and  <xref target="aes-cbc-alg"/>. Also, for all six entries, the
"Capabilities" column should contain "[kty]", the "Change Controller"
column should contain "IESG", and the "Reference" column should contain
a reference to this document.</t>
      <t>Ideally, the six values will be assigned in the -65534 to -261 range.</t>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>Since AES has a 128-bit block size, regardless of the mode
employed, the ciphertext generated by AES encryption becomes
distinguishable from random values after 2^64 blocks are encrypted
with a single key. Implementations should change the key before
before reaching this limit.</t>
      <t>There are fairly generic precomputation attacks against all block cipher
modes that allow a meet-in-the-middle attack against the key. These attacks
require the creation and searching of huge tables of ciphertext associated
with known plaintext and known keys. Assuming that the memory and processor
resources are available for a precomputation attack, then the theoretical
strength of AES-CTR and AES-CBC are limited to 2^(n/2) bits, where n is the
number of bits in the key. The use of long keys is the best countermeasure
to precomputation attacks.</t>
      <t>When used properly, AES-CTR mode provides strong confidentiality. Unfortunately,
it is very easy to misuse this counter mode. If counter block values are ever
used for more that one plaintext with the same key, then the same key stream
will be used to encrypt both plaintexts, and the confidentiality guarantees are
voided.</t>
      <t>What happens if the encryptor XORs the same key stream with two different
plaintexts? Suppose two plaintext octet sequences P1, P2, P3 and Q1, Q2, Q3
are both encrypted with key stream K1, K2, K3. The two corresponding
ciphertexts are:</t>
      <artwork><![CDATA[
   (P1 XOR K1), (P2 XOR K2), (P3 XOR K3)

   (Q1 XOR K1), (Q2 XOR K2), (Q3 XOR K3)
]]></artwork>
      <t>If both of these two ciphertext streams are exposed to an attacker, then a
catastrophic failure of confidentiality results, since:</t>
      <artwork><![CDATA[
   (P1 XOR K1) XOR (Q1 XOR K1) = P1 XOR Q1
   (P2 XOR K2) XOR (Q2 XOR K2) = P2 XOR Q2
   (P3 XOR K3) XOR (Q3 XOR K3) = P3 XOR Q3
]]></artwork>
      <t>Once the attacker obtains the two plaintexts XORed together, it is relatively
straightforward to separate them. Thus, using any stream cipher, including
AES-CTR, to encrypt two plaintexts under the same key stream leaks the
plaintext.</t>
      <t>Therefore, it is inappropriate to use AES-CTR with static keys. Extraordinary
measures would be needed to prevent reuse of a counter block value with the
static key across power cycles.  To be safe, implementations MUST use fresh
keys with AES-CTR.</t>
      <t>Data forgery is trivial with AES-CTR mode. The demonstration of this attack
is similar to the key stream reuse discussion above. If a known plaintext
octet sequence P1, P2, P3 is encrypted with key stream K1, K2, K3, then the
attacker can replace the plaintext with one of his own choosing. The
ciphertext is:</t>
      <artwork><![CDATA[
   (P1 XOR K1), (P2 XOR K2), (P3 XOR K3)
]]></artwork>
      <t>The attacker simply XORs a selected sequence Q1, Q2, Q3 with the
ciphertext to obtain:</t>
      <artwork><![CDATA[
   (Q1 XOR (P1 XOR K1)), (Q2 XOR (P2 XOR K2)), (Q3 XOR (P3 XOR K3))
]]></artwork>
      <t>Which is the same as:</t>
      <artwork><![CDATA[
   ((Q1 XOR P1) XOR K1), ((Q2 XOR P2) XOR K2), ((Q3 XOR P3) XOR K3)
]]></artwork>
      <t>Decryption of the attacker-generated ciphertext will yield exactly what
the attacker intended:</t>
      <artwork><![CDATA[
   (Q1 XOR P1), (Q2 XOR P2), (Q3 XOR P3)
]]></artwork>
      <t>Accordingly, implementations MUST use of AES-CTR in conjunction with an
authentication and integrity mechanism, such as a digital signature.</t>
      <t>AES-CBC does not provide integrity protection.  Thus, an attacker
can introduce undetectable errors if AES-CBC is used without a companion
authentication mechanism. Accordingly, implementations MUST use of AES-CBC
in conjunction with an authentication and integrity mechanism, such as a digital signature.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Many thanks to David Brown for raising the need for non-AEAD algorithms
to support the SUIT manifest.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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="RFC4107" target="https://www.rfc-editor.org/info/rfc4107">
          <front>
            <title>Guidelines for Cryptographic Key Management</title>
            <author fullname="S. Bellovin" initials="S." surname="Bellovin">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="June" year="2005"/>
            <abstract>
              <t>The question often arises of whether a given security system requires some form of automated key management, or whether manual keying is sufficient.  This memo provides guidelines for making such decisions. When symmetric cryptographic mechanisms are used in a protocol, the presumption is that automated key management is generally but not always needed.  If manual keying is proposed, the burden of proving that automated key management is not required falls to the proposer.  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="107"/>
          <seriesInfo name="RFC" value="4107"/>
          <seriesInfo name="DOI" value="10.17487/RFC4107"/>
        </reference>
        <reference anchor="RFC5652" target="https://www.rfc-editor.org/info/rfc5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS).  This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC8152" target="https://www.rfc-editor.org/info/rfc8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <reference anchor="AES">
          <front>
            <title>Advanced Encryption Standard (AES)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="November"/>
          </front>
          <seriesInfo name="FIPS Publication" value="197"/>
        </reference>
        <reference anchor="MODES">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Methods and Techniques</title>
            <author initials="M." surname="Dworkin" fullname="Morris Dworkin">
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="December"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-38A"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC5116" target="https://www.rfc-editor.org/info/rfc5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms.  The interface and registry can be used as an application-independent set of cryptoalgorithm suites.  This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="I-D.ietf-suit-manifest" target="https://www.ietf.org/archive/id/draft-ietf-suit-manifest-20.txt">
          <front>
            <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
            <author fullname="Brendan Moran" initials="B." surname="Moran">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Koen Zandberg" initials="K." surname="Zandberg">
              <organization>Inria</organization>
            </author>
            <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
              <organization>Nordic Semiconductor</organization>
            </author>
            <date day="7" month="October" year="2022"/>
            <abstract>
              <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an IoT device), where to find the that code/data,
   the devices to which it applies, and cryptographic information
   protecting the manifest.  Software updates and Trusted Invocation
   both tend to use sequences of common operations, so the manifest
   encodes those sequences of operations, rather than declaring the
   metadata.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-suit-manifest-20"/>
        </reference>
        <reference anchor="IANA" target="https://www.iana.org/assignments/cose/cose.xhtml">
          <front>
            <title>IANA Registry for CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAGn+T2MAA+1aa28bO5L9LkD/gdAFNvZAUiwl8b3xYLDjVyZG4tixnWQX
g5kB1aIkjvuhIbvtaBzf376nimQ3W5bzuDsfdhcbIInUYpPFepw6VeRgMOh2
Sl2mak/0Dg/OLsTZ5O8qKcWlnuc6nwuZT8VxnpjVstRFLrYOzy6Pt/fE/vHl
4PDqgn/mzweHvW5HTiZG3Wz8VdzqciHo7W5nWiS5zLDi1MhZOdCqnA2SwqqB
VHaQlGaA9wbJJBns7GCwLDFyvDMeD0Y7g9HLbifBk3lhVnvCltNup9vRS7Mn
SlPZcryz83Jn3O3YapJpayFxuVri9ZPjq1cQzyi5Jy5VUhldrrqd28Jcz01R
Lfe8YNdqhWdTjM9LZXJVDo5IQlrDlhDqbzItcsVrqW5nqffEn8si6QtbmNKo
mcWnVUYf/kKvyKpcFGav2xHQscAfnds9cTEUr4vKpmrlHjpNXFTWtp8XZr4n
Puq5TmuJ++Lt20P3a9B0e4D7TWVSp3ti4Wb74w0NsSoZJkW2JsvrobiyyaKY
qVzPY3FeyzxX9sGPkEnm+p+SXAFWNpl4qzNdqml7YX55WNYv/1GazK3e7eSF
yfD+jSK9iItXh+PR6GX4/Mvo5+fh8/PRzs/h84vdF+NmjP8Mx9pz6wb/3Z/e
yDxRLYe9JLtJMxVbGL/d89qrLSNqVb/jXckUtreYsCqVKGb165Z9+Uoli7xI
i/lKbL07ubzadjMEF90ZDUYj98gqo5XV+ayoV+m9Ojm/FOfVJNUJr9WDyKOX
P7NMp2dHD7ZzoaCzTGF93smsMOIgLZJrcaiXC2XEaTGFjSDk2VIZb5NThZ3F
0up/VMpu3ja7wOlQHFEc6Dw8dh5wWhij7fpv/0pNjR/XFL0hLpcq0VhlTWO/
7OwMnv2y3+PAx1tr7vRiNNrlzyeDoyEji610OcjgtzNlS/fT/rv9tq7pibhQ
c21Ls2JNfzcW+nmkmasSvl+WS7v39Ont7e1Qy1wOobGnEkg0z2HJ0j4lnON/
hp8XZZbSLgaDAeIZK8uEoeZqocRhkSfaKnGgcwmJvCAXammUxTzSCwAht0mp
UjhFCJgMToHVKCZpHzaTaSoSuIqw+p+K9+CeZcpaOXePh4/tt9t5sGFaw5Jt
ZhqhpnPSuqCoFGUhlqa40VhrIq1OgJoemMjKNzqBu1aWZi5pi7RiJDuwaEHi
F0lFqqrXsDQaqF/kN3gMOSwbyE20KdNIS+oraY5GeMBxiqSBJJTZJhcNg/4z
PZ2mir79ROBvimmV8J7vftL09d4Z5lH5xPeLB0k2CSjW5at19FUv7Ha8Ve7u
PDje3yMLwUU+D+PZ6y3DSlO5gnzKdjv7QASSmlLq9MHwfWsLhCD9dER2AoTu
H/mVKM6wUiN0H/l0oZNF4wIFpoBaZviCJWRKfkDCQ6Fqzl6BoaViPQ8Fst+t
ulGmTxs3irM1fLOspFPqLT3F+wX9DOdNkGa0zZByKywKlUoxRaYrgRjk/7Ks
jOqTr2KncOPIN+v1sehJTssh0BIJhfQxv6BNNvuiGbCmyJWaqineuCJntMWs
vCUBA66IiSLbTNVMI/TEZMXmI9ohLj+cXIlPf4LaNkPSPXwLi4BYCPVZZstU
hb0+3BBJI9NbubLCI8HQ+exh5H4Of02mHQAHSAG5EcRurOidfri86vXd/+Ld
GX++OH7/4eTi+Ig+X77ef/u2/hBGXL4++/AWv3c7/mPz6uHZ6enxuyP3Np6K
tUen+//Z67NgvbPzq5Ozd/tvewQdJSKK+aALKdIoDDVxNjLYIvmeZExLjJ44
vDk4PP+3fGKXvx89d75IFAK+6CPg5+ekUagwdysWeboS7itsAhdcLpU0NBEj
o1ySisn0gLVFcZsLUr5XK2J2Q5oFKBBThY8wLHC2WrCUzvoz5CORhdeK+jXC
hQ0cpdtpkxRsBP/d3w95eVstl6CXhDJGOSsSYiN1j8a/iIkuKfJGL8fuI+94
/GKXvxGiKp5kwfExYfbAaQByhdfF1mhXFEmpSrs93LgfS3EJN3xkSwgwjxdY
6e6OqQxJfyyTRbeD4S7C3Ns8r57NoGMYHEFMWQ8UAEwi8QJH6oNDIFEfHx6I
reMUSGGKXCdwdkTxQVFcb/cFIeqWJ0SeHS2kJqDchl4OXx3Uv75CBB/IhF46
o8dnVbmsyvgx6Y7QeuuwqMj/nDrOyH9oa/4pi8aWImjfDtguNgrhxx0cbtNe
4OraJqD6zpHLOJ9EHhcWIs/zvoats699gh/XWcWDmwM/xvavpRV2f6HcL4Xp
duYqJzOSmkXFRFHcyBT/lgvHJIh+4geXHBCX9P5U+fd9uuY3GMAShBMJk2Nr
mvHeFQriBoaDm2ydfNx+uGu2uAXlFCcfHeEgD8fKEzAffj2AFMECbzcrDMuY
I7QT5WaotwUxchF2Bthf8MQU7PmK0Bo/uP2p3AJQrd85ChY7rBXcSt59oeDI
bBi/SuT/jQ7rcILDX1MRB0KnZDasraUam2jHGf4Dyd2FhwtrfqFO/igwU0k4
+LlsJvHq/4FJEnZLN8uJGxeEnsZvYDoUt3OnHs6Kol5fkLs0E3lP+gzGGs/A
u3dZG1lsJcjXAWqUNV8VxtkdA22RIzLrDRXKJVij/lFpNmy8sMsGSzmdOheU
IqvSUlOSdJvudhpUYwOGiQloMjI60j7MVTqiBsNn8hr5pSRHlSWTbsKbR8In
oo2NEYg7sZzkE255pxySMMEWS0reXivulyEzKI4T7wccKtNgUMcZYEtyvJr+
RcpdMiV1w7BstxPcCeOtIg+mkEPgOOhwUnFw2mEMGND/isQkEymKwL6LujCE
woc0rpcqZfAnIZdAaQQ3IpqMWZPa1BZNempkheMaKl2BrtJxu08LnTrLIhaz
iulSC136a2ZnkRqHc8QgAEVtah+rEDJBtQqUSVf9WjrP9gjcFnq+ECmSWEpO
s0ZJMdMHKiPLCnij4hkibVGK03m9ylAcMN1bMzLc2iga6uMRm61NyZKTjhgp
S4kXiyX4MtSZ08CkSFNt2eM0iv6pZmEgtby2oq5zCc8nBbJWW12AN2bb7JhY
3O8AW1sPPHJ8TROCBUEAQ8uEDfI4Tm6tFE9b4P4XMjTtAP50TKEPKumK0wxT
M5TeFlU6JdM6suzqQUW8VNR6kdggtusSTaOdenYhE1NY0FtUAwDzVZKSA18x
DFg5I0ofPNcVBt0OJwiafgYhFixizUe8GuAr0YOghdLoGwoav39JUumpiPwO
v0DzKJK56kCt5Uas58Lt6B3LNUJlwyKITcTOqmV0TNDt0JLB1UhcMqukqFii
MCBDN7UZf21VTnX9A1B/VB+1I+fk9H+v8qSp7eT3LhAVWERf1gqSFuSy5jMU
l7BVMSkl44fSXLDNTJGJOl2guKZqpqifI670UkMazpvuZyrP2nsTEehF4Elf
edNsHZ/3ZVlDKPWA+/wpVfm8XDim15R4hC4+th3yxMEx4wgihlFqTiI6vynS
GwAhE7afai1zBtl3k2bihBFmppWxDYWrS4aIZXjmRtKFpRqAbVG3GSCiuKV3
koVKrl2uzeSUKHK38zsuTcWT63L1BBRaIRJZJwTmrlR024ZXhudPLleAGkRB
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
H1U1AAA=

-->

</rfc>
