<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-11" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-11"/>
    <author initials="F." surname="Günther" fullname="Felix Günther">
      <organization>IBM Research Europe - Zurich</organization>
      <address>
        <email>mail@felixguenther.info</email>
      </address>
    </author>
    <author initials="M." surname="Thomson" fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <author initials="C. A." surname="Wood" fullname="Christopher A. Wood">
      <organization>Cloudflare</organization>
      <address>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <date year="2025" month="December" day="04"/>
    <keyword>safe</keyword>
    <keyword>limits</keyword>
    <keyword>crypto</keyword>
    <abstract>
      <?line 132?>

<t>An Authenticated Encryption with Associated Data (AEAD) algorithm provides
confidentiality and integrity.  Excessive use of the same key can give an
attacker advantages in breaking these properties.  This document provides simple
guidance for users of common AEAD functions about how to limit the use of keys
in order to bound the advantage given to an attacker.  It considers limits in
both single- and multi-key settings.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Crypto Forum Research Group mailing list (cfrg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/search/?email_list=cfrg"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/cfrg/draft-irtf-cfrg-aead-limits"/>.</t>
    </note>
  </front>
  <middle>
    <?line 141?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>An Authenticated Encryption with Associated Data (AEAD) algorithm
provides confidentiality and integrity. <xref target="RFC5116"/> specifies an AEAD
as a function with four inputs -- secret key, nonce, plaintext, associated data
(of which nonce, plaintext, and associated data can optionally be zero-length) --
that produces ciphertext output and an error code
indicating success or failure. The ciphertext is typically composed of the encrypted
plaintext bytes and an authentication tag.</t>
      <t>The generic AEAD interface does not describe usage limits.  Each AEAD algorithm
does describe limits on its inputs, but these are formulated as strict
functional limits, such as the maximum length of inputs, which are determined by
the properties of the underlying AEAD composition.  Degradation of the security
of the AEAD as a single key is used multiple times is not given the same
thorough treatment.</t>
      <t>Effective limits can be influenced by the number of "users" of
a given key. In the traditional setting, there is one key shared between two
parties. Any limits on the maximum length of inputs or encryption operations
apply to that single key. The attacker's goal is to break security
(confidentiality or integrity) of that specific key. However, in practice, there
are often many parties with independent keys, multiple sessions between two
parties, and even many keys used within a single session due to rekeying. This
multi-key security setting, often referred to as the multi-user setting in the
academic literature, considers an attacker's advantage in breaking security of
any of these many keys, further assuming the attacker may have done some offline
work (measuring time, but not memory) to help break any key. As a result, AEAD
algorithm limits may depend on offline work and the number of keys. However,
given that a multi-key attacker does not target any specific key, acceptable
advantages may differ from that of the single-key setting.</t>
      <t>The number of times a single pair of key and nonce can be used might also be
relevant to security.  For some algorithms, such as AEAD_AES_128_GCM or
AEAD_AES_256_GCM, this limit is 1 and using the same pair of key and nonce has
serious consequences for both confidentiality and integrity; see
<xref target="NonceDisrespecting"/>.  Nonce-reuse resistant algorithms like
AEAD_AES_128_GCM_SIV can tolerate a limited amount of nonce reuse.
This document focuses on AEAD schemes requiring non-repeating nonces.</t>
      <t>It is good practice to have limits on how many times the same key (or pair of
key and nonce) are used.  Setting a limit based on some measurable property of
the usage, such as number of protected messages, amount of data transferred, or
time passed ensures that it is easy to apply limits.  This might require the
application of simplifying assumptions.  For example, TLS 1.3 and QUIC both
specify limits on the number of records that can be protected, using the
simplifying assumption that records are the same size; see <xref section="5.5" sectionFormat="of" target="TLS"/> and <xref section="6.6" sectionFormat="of" target="RFC9001"/>.</t>
      <t>Exceeding the determined usage limit for a single key can be avoided using rekeying.
Rekeying can also provide a measure of forward and backward (post-compromise) security.
<xref target="RFC8645"/> contains a thorough survey of rekeying and the consequences of different
design choices.  When considering rekeying, the multi-user limits SHOULD be applied.</t>
      <t>Currently, AEAD limits and usage requirements are scattered among peer-reviewed
papers, standards documents, and other RFCs. Determining the correct limits for
a given setting is challenging as papers do not use consistent labels or
conventions, and rarely apply any simplifications that might aid in reaching a
simple limit.</t>
      <t>The intent of this document is to collate all relevant information about the
proper usage and limits of AEAD algorithms in one place.  This may serve as a
standard reference when considering which AEAD algorithm to use, and how to use
it.</t>
    </section>
    <section anchor="requirements-notation">
      <name>Requirements Notation</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.
<?line -6?>
      </t>
    </section>
    <section anchor="notation">
      <name>Notation</name>
      <t>This document defines limitations in part using the quantities in
<xref target="notation-table"/> below.</t>
      <table anchor="notation-table">
        <name>Notation</name>
        <thead>
          <tr>
            <th align="right">Symbol</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">n</td>
            <td align="left">AEAD block length (in bits), of the underlying block cipher</td>
          </tr>
          <tr>
            <td align="right">k</td>
            <td align="left">AEAD key length (in bits)</td>
          </tr>
          <tr>
            <td align="right">r</td>
            <td align="left">AEAD nonce length (in bits)</td>
          </tr>
          <tr>
            <td align="right">t</td>
            <td align="left">Size of the authentication tag (in bits)</td>
          </tr>
          <tr>
            <td align="right">L</td>
            <td align="left">Maximum length of each message, including both plaintext and AAD (in blocks)</td>
          </tr>
          <tr>
            <td align="right">s</td>
            <td align="left">Total plaintext length in all messages (in blocks)</td>
          </tr>
          <tr>
            <td align="right">q</td>
            <td align="left">Number of protected messages (AEAD encryption invocations)</td>
          </tr>
          <tr>
            <td align="right">v</td>
            <td align="left">Number of attacker forgery attempts (failed AEAD decryption invocations + 1)</td>
          </tr>
          <tr>
            <td align="right">p</td>
            <td align="left">Upper bound on adversary attack probability</td>
          </tr>
          <tr>
            <td align="right">o</td>
            <td align="left">Offline adversary work (measured in number of encryption and decryption queries)</td>
          </tr>
          <tr>
            <td align="right">u</td>
            <td align="left">Number of keys (multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">B</td>
            <td align="left">Maximum number of blocks encrypted by any key (multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">C</td>
            <td align="left">Maximum number of blocks encrypted or decrypted by any key (multi-key setting only)</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-definitions">
      <name>Security Definitions</name>
      <t>For each AEAD algorithm, we define the chosen-plaintext confidentiality (IND-CPA) and ciphertext
integrity (INT-CTXT) advantage roughly as the advantage an attacker has in breaking the
corresponding classical security property for the algorithm. An IND-CPA attacker
can query ciphertexts for arbitrary plaintexts. An INT-CTXT attacker can additionally
query plaintexts for arbitrary ciphertexts. Moreover, we define the combined
authenticated encryption advantage guaranteeing both confidentiality and integrity
against an active attacker. Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>Confidentiality advantage (CA): The probability of an attacker
succeeding in breaking the IND-CPA (confidentiality) properties of the AEAD scheme.
In this document, the definition of confidentiality advantage roughly is the
probability that an attacker successfully distinguishes the ciphertext outputs
of the AEAD scheme from the outputs of a random function.</t>
        </li>
        <li>
          <t>Integrity advantage (IA): The probability of an attacker succeeding
in breaking the INT-CTXT (integrity) properties of the AEAD scheme. In this document,
the definition of integrity advantage roughly is the probability that an attacker
is able to forge a ciphertext that will be accepted as valid.</t>
        </li>
        <li>
          <t>Authenticated Encryption advantage (AEA): The probability of an active
attacker succeeding in breaking the authenticated-encryption properties of the
AEAD scheme. In this document, the definition of authenticated encryption
advantage roughly is the probability that an attacker successfully distinguishes
the ciphertext outputs of the AEAD scheme from the outputs of a random function
or is able to forge a ciphertext that will be accepted as valid.</t>
        </li>
      </ul>
      <t>Here, we consider advantages beyond distinguishing underyling primitives from their
ideal instances, for example, a blockcipher from a random permutation (PRP advantage)
or a pseudorandom function from a truly random function (PRF advantage).</t>
      <t>See <xref target="AEComposition"/>, <xref target="AEAD"/> for the formal definitions of and relations
between IND-CPA (confidentiality), INT-CTXT (integrity),
and authenticated encryption security (AE).
The authenticated encryption advantage subsumes, and can be derived as the
combination of, both CA and IA:</t>
      <artwork><![CDATA[
CA <= AEA
IA <= AEA
AEA <= CA + IA
]]></artwork>
      <t>The AEADs described in this document all use ciphers in counter mode,
where a pseudorandom bitstream is XORed with plaintext to produce ciphertext.</t>
      <t>Confidentiality under definitions other than IND-CPA,
such as IND-CCA definition that allows an active attacker to adaptively decrypt ciphertexts,
depends critically on retaining integrity.
A cipher in counter mode cannot guarantee confidentiality
if integrity is not maintained.</t>
      <t>This combined risk to AE security is included in the definition of AEA,
which bounds the overall risk of attack on the AEAD.
This document decomposes AEA into CA and IA as a way
to help set specific limits on different types of usage.
AE security depends on retaining both confidentiality and integrity,
and SHOULD be the default basis for setting limits.</t>
    </section>
    <section anchor="calculating-limits">
      <name>Calculating Limits</name>
      <t>Applications choose their own targets for AEA.
Each application requires an analysis of how it uses an AEAD
to determine what usage limits will keep AEA sufficiently small.</t>
      <t>Once an upper bound on AEA is determined (or bounds on CA and IA separately),
this document defines a process for determining three overall operational limits:</t>
      <ul spacing="normal">
        <li>
          <t>Confidentiality limit (CL): The number of messages an application can encrypt
before giving the adversary a confidentiality advantage higher than CA.</t>
        </li>
        <li>
          <t>Integrity limit (IL): The number of ciphertexts an application can decrypt
unsuccessfully before giving the adversary an integrity advantage higher than
IA.</t>
        </li>
        <li>
          <t>Authenticated encryption limit (AEL): The combined number of messages and
number of ciphertexts an application can encrypt or decrypt before giving the
adversary an authenticated encryption advantage higher than AEA.</t>
        </li>
      </ul>
      <t>As a general rule, a value for AEA can be evenly allocated to CA and IA
by halving the target.  This split allows for the computation of separate limits,
CL and IL. For example, given a value <tt>AEA &lt;= 2^-60</tt> one may choose
<tt>IA &lt;= 2^-61</tt> and <tt>CA &lt;= 2^-61</tt>.</t>
      <t>Some applications might choose to set different targets for CA and IA.
For example, TLS sets CA below 2<sup>-60</sup> and IA below 2<sup>-57</sup>
in the single-key setting; see <xref section="5.5" sectionFormat="of" target="TLS"/>.</t>
      <t>When limits are expressed as a number of messages an application can encrypt or
decrypt, this requires assumptions about the size of messages and any
authenticated additional data (AAD).  Limits can instead be expressed in terms
of the number of bytes, or blocks, of plaintext and maybe AAD in total.</t>
      <t>To aid in translating between message-based and byte/block-based limits,
a formulation of limits that includes a maximum message size (<tt>L</tt>) and the AEAD
schemes' block length in bits (<tt>n</tt>) is provided.</t>
      <t>All limits are based on the total number of messages, either the number of
protected messages (<tt>q</tt>) or the number of forgery attempts (<tt>v</tt>); which correspond
to CL and IL respectively.</t>
      <t>Limits are then derived from those bounds using a target attacker probability.
For example, given an integrity advantage of <tt>IA = v * (8L / 2^106)</tt> and a
targeted maximum attacker success probability of <tt>IA = p</tt>, the algorithm remains
secure, i.e., the adversary's advantage does not exceed the targeted probability
of success, provided that <tt>v &lt;= (p * 2^106) / 8L</tt>. In turn, this implies that
<tt>v &lt;= (p * 2^103) / L</tt> is the corresponding limit.</t>
      <t>To apply these limits, implementations can count the number of messages that are
protected or rejected against the determined limits (<tt>q</tt> and <tt>v</tt> respectively).
This requires that messages cannot exceed the maximum message size (<tt>L</tt>) that is
chosen.</t>
      <section anchor="approximations">
        <name>Approximations</name>
        <t>This analysis assumes a message-based approach to setting limits.
Implementations that use byte counting rather than message counting could use a
maximum message size (<tt>L</tt>) of one to determine a limit for the number of
protected messages (<tt>q</tt>) that can be applied with byte counting.  This results
in attributing per-message overheads to every byte, so the resulting limit could
be significantly lower than necessary.  Actions, like rekeying, that are taken
to avoid the limit might occur more often as a result.</t>
        <t>To simplify formulae, estimates in this document elide terms that contribute
negligible advantage to an attacker relative to other terms.</t>
        <t>In other respects, this document seeks to make conservative choices that err on
the side of overestimating attacker advantage.  Some of these assumptions are
present in the papers that this work is based on.  For instance, analyses are
simplified by using a single message size that covers both AAD and plaintext.
AAD can contribute less toward attacker advantage for confidentiality limits, so
applications where AAD comprises a significant proportion of messages might find
the estimates provided to be slightly more conservative than necessary to meet a
given goal.</t>
        <t>This document assumes the use of non-repeating nonces (in particular, non-zero-length
nonces).  The modes covered here are not robust if the same nonce and key are used to
protect different messages, so deterministic generation of nonces from a counter or
similar techniques is strongly encouraged.  If an application cannot guarantee that
nonces will not repeat, a nonce-misuse resistant AEAD like AES-GCM-SIV <xref target="SIV"/> is
likely to be a better choice.</t>
      </section>
    </section>
    <section anchor="su-limits">
      <name>Single-Key AEAD Limits</name>
      <t>This section summarizes the confidentiality and integrity bounds and limits for modern AEAD algorithms
used in IETF protocols, including: AEAD_AES_128_GCM <xref target="RFC5116"/>, AEAD_AES_256_GCM <xref target="RFC5116"/>,
AEAD_AES_128_CCM <xref target="RFC5116"/>, AEAD_CHACHA20_POLY1305 <xref target="RFC8439"/>, AEAD_AES_128_CCM_8 <xref target="RFC6655"/>.
The limits in this section apply to using these schemes with a single key;
for settings where multiple keys are deployed (for example, when rekeying within
a connection or when using multiple connections between two parties), the limits
in this section MUST NOT be used, but instead those in <xref target="mu-limits"/>.</t>
      <t>These algorithms, as cited, all define a nonce length (<tt>r</tt>) of 96 bits.  Some
definitions of these AEAD algorithms allow for other nonce lengths, but the
analyses in this document all fix the nonce length to <tt>r = 96</tt>.  Using other nonce
lengths might result in different bounds; for example, <xref target="GCMProofs"/> shows that
using a variable-length nonce for AES-GCM results in worse security bounds.</t>
      <t>The CL and IL values bound the total number of encryption and forgery queries (<tt>q</tt> and <tt>v</tt>).
Alongside each advantage value, we also specify these bounds.</t>
      <section anchor="offline-work">
        <name>Offline Work</name>
        <t>Single-key analyses of different cipher modes typically concentrate on the advantage
that an attacker might gain through the mode itself.  These analyses
assume that the underlying cipher is an ideal PRP or PRF, and we make the same
assumptions here.  But even an ideal PRP or PRF can be attacked through exhaustive
key search (in the key length, <tt>k</tt>) given sufficient resources.</t>
        <t>An attacker that is able to deploy sufficient offline resources (<tt>o</tt>) can
increase their success probability independent of any usage.  In even the best
case, single key bounds are always limited to the maximum of the stated bound and</t>
        <artwork><![CDATA[
AEA <= o / 2^k
]]></artwork>
        <t>This constrains the security that can be achieved for modes that use smaller key
sizes, depending on what assumptions can be made about attacker resources.</t>
        <t>For example, if an attacker could be assumed to have the resources to perform in
the order of 2^80 AES operations, an attacker gains an attack probability of
2<sup>-48</sup>.  That might seem like it requires a lot of compute resources,
but amount of compute could cost less than 1 million USD in 2025. That cost can
only reduce over time, suggesting that a much greater advantage is likely
achievable for a sufficiently motivated attacker.</t>
      </section>
      <section anchor="aeadaes128gcm-and-aeadaes256gcm">
        <name>AEAD_AES_128_GCM and AEAD_AES_256_GCM</name>
        <t>The CL and IL values for AES-GCM are derived in <xref target="AEBounds"/>, following <xref target="GCMProofs"/>, and summarized below.
For this AEAD, <tt>n = 128</tt> (the AES block length) and <tt>t = 128</tt> <xref target="GCM"/>, <xref target="RFC5116"/>. In this example,
the length <tt>s</tt> is the sum of AAD and plaintext (in blocks of 128 bits), as described in <xref target="GCMProofs"/>.</t>
        <section anchor="confidentiality-limit">
          <name>Confidentiality Limit</name>
          <t>Applying Corollary 3 from <xref target="GCMProofs"/>, assuming AES behaves like a random permutation,
the following bound applies:</t>
          <!--
    Corollary 3 in {{GCMProofs}} states this bound for GCM with a random permutation;
    so there is an additional PRP advantage term in the standard model (cf. offline work discussion).
-->

<artwork><![CDATA[
CA <= ((s + q + 1)^2) / 2^129
]]></artwork>
          <t>This implies the following usage limit:</t>
          <artwork><![CDATA[
q + s <= p^(1/2) * 2^(129/2) - 1
]]></artwork>
          <t>Which, for a message-based protocol with <tt>s &lt;= q * L</tt>, if we assume that every
packet is size <tt>L</tt> (in blocks of 128 bits), produces the limit:</t>
          <artwork><![CDATA[
q <= (p^(1/2) * 2^(129/2) - 1) / (L + 1)
]]></artwork>
        </section>
        <section anchor="integrity-limit">
          <name>Integrity Limit</name>
          <t>Applying Equation (22) from <xref target="GCMProofs"/>, in which the assumption of
<tt>s + q + v &lt; 2^64</tt> ensures that the delta function cannot produce a value
greater than 2, the following bound applies:</t>
          <!--
    Equation (22) in {{GCMProofs}} includes an additional PRP advantage term,
    which we omit here (cf. offline work discussion).
-->

<artwork><![CDATA[
IA <= 2 * (v * (L + 1)) / 2^128
]]></artwork>
          <t>For the assumption of <tt>s + q + v &lt; 2^64</tt>, observe that this applies when <tt>p &gt; L / 2^63</tt>.
<tt>s + q &lt;= q * (L + 1)</tt> is always small relative to <tt>2^64</tt> if the same advantage is
applied to the confidentiality limit on <tt>q</tt>.</t>
          <t>This produces the following limit:</t>
          <artwork><![CDATA[
v <= min(2^64, (p * 2^127) / (L + 1))
]]></artwork>
          <!--
Note that values of p that cause v to exceed 2^64 are where `p > L / 2^63`.
The same p value produces q = 2^33 * L^(-1/2) in the CA limit.
L is at most 2^32 by construction (that's the block counter),
so s + q <= q * (L+1) would be at most 2^49 which can be ignored
(ignoring the +1 as also being insignificant).
-->

</section>
      </section>
      <section anchor="aeadchacha20poly1305">
        <name>AEAD_CHACHA20_POLY1305</name>
        <t>The known single-user result for AEAD_CHACHA20_POLY1305 <xref target="ChaCha20Poly1305-MU"/>
(correcting the prior one from <xref target="ChaCha20Poly1305-SU"/>) gives a combined AE limit,
which we separate into confidentiality and integrity limits below. For this
AEAD, <tt>n = 512</tt> (the ChaCha20 block length), <tt>k = 256</tt>, and <tt>t = 128</tt>; the length <tt>L'</tt> is the sum of AAD
and plaintext (in Poly1305 blocks of 128 bits), see <xref target="ChaCha20Poly1305-MU"/>.</t>
        <!--
    In {{ChaCha20Poly1305-SU}}, L' is |AAD| + |plaintext| + 1; the + 1 is one
    block length encoding (in Poly1305 t bit blocks).

    From {{ChaCha20Poly1305-MU}} Theorem 4.1:
      AEA <= PRF-advantage  +  v * 2^25 * (L'+1) / 2^t
    where t = 128. The CA part of this is only the PRF advantage
    (against the ChaCha20 block function). As in the proof of Theorem 4.1,
    the hops bounding G_3 only apply to the decryption oracle.
    So CA beyond the PRF advantage is 0. (L' is in Poly1305 t bit blocks.)
-->

<section anchor="confidentiality-limit-1">
          <name>Confidentiality Limit</name>
          <artwork><![CDATA[
CA <= 0
]]></artwork>
          <t>This implies there is no limit beyond the PRF security of the underlying ChaCha20
block function.</t>
        </section>
        <section anchor="integrity-limit-1">
          <name>Integrity Limit</name>
          <artwork><![CDATA[
IA <= (v * (L' + 1)) / 2^103
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
v <= (p * 2^103) / (L' + 1)
]]></artwork>
        </section>
      </section>
      <section anchor="aeadaes128ccm">
        <name>AEAD_AES_128_CCM</name>
        <t>The CL and IL values for AEAD_AES_128_CCM are derived from <xref target="CCM-ANALYSIS"/>
and specified in the QUIC-TLS mapping specification <xref target="RFC9001"/>. This analysis uses the total
number of underlying block cipher operations to derive its bound. For CCM, this number is the sum of:
the length of the associated data in blocks, the length of the ciphertext in blocks, the length of
the plaintext in blocks, plus 1.</t>
        <t>In the following limits, this is simplified to a value of twice the length of the packet in blocks,
i.e., <tt>2L</tt> represents the effective length, in number of block cipher operations, of a message with
L blocks. This simplification is based on the observation that common applications of this AEAD carry
only a small amount of associated data compared to ciphertext. For example, QUIC has 1 to 3 blocks of AAD.</t>
        <!--
    In {{CCM-ANALYSIS}}, Theorem 1+2, the terms
    l_E / l_F are the sum of block cipher applications over all encryption /
    forgery calls, which count the number of message blocks twice: once as
    |m| (resp. |c|), and once in the encoding function \beta.

    We simplify this by doubling the the packet length, using `2L` instead of
    `L`, while ignoring the usually small additional overhead of associated data.
    Hence `l_E = 2L * q` and `l_F = 2L * v`.

    The bounds stated are those beyond the PRP security of the AES blockcipher.
-->

<t>For this AEAD, <tt>n = 128</tt> (the AES block length) and <tt>t = 128</tt>.</t>
        <section anchor="confidentiality-limit-2">
          <name>Confidentiality Limit</name>
          <artwork><![CDATA[
CA <= (2L * q)^2 / 2^n
    = (2L * q)^2 / 2^128
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
q <= sqrt(p) * 2^63 / L
]]></artwork>
        </section>
        <section anchor="integrity-limit-2">
          <name>Integrity Limit</name>
          <artwork><![CDATA[
IA <= v / 2^t + (2L * (v + q))^2 / 2^n
    = v / 2^128 + (2L * (v + q))^2 / 2^128
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
v + (2L * (v + q))^2 <= p * 2^128
]]></artwork>
          <t>In a setting where <tt>v</tt> or <tt>q</tt> is sufficiently large, <tt>v</tt> is negligible compared to
<tt>(2L * (v + q))^2</tt>, so this this can be simplified to:</t>
          <artwork><![CDATA[
v + q <= sqrt(p) * 2^63 / L
]]></artwork>
        </section>
      </section>
      <section anchor="aeadaes128ccm8">
        <name>AEAD_AES_128_CCM_8</name>
        <t>The analysis in <xref target="CCM-ANALYSIS"/> also applies to this AEAD, but the reduced tag
length of 64 bits changes the integrity limit calculation considerably.</t>
        <artwork><![CDATA[
IA <= v / 2^t + (2L * (v + q))^2 / 2^n
    = v / 2^64 + (2L * (v + q))^2 / 2^128
]]></artwork>
        <t>This results in reducing the limit on <tt>v</tt> by a factor of 2<sup>64</sup>.</t>
        <artwork><![CDATA[
v * 2^64 + (2L * (v + q))^2 <= p * 2^128
]]></artwork>
        <t>Note that, to apply this result, two inequalities can be produced, with the
first applied to determine <tt>v</tt>, then applying the second to find <tt>q</tt>:</t>
        <artwork><![CDATA[
v * 2^64 <= p * 2^127
(2L * (v + q))^2 <= p * 2^127
]]></artwork>
        <t>This approach produces much smaller values for <tt>v</tt> than for <tt>q</tt>.  Alternative
allocations tend to greatly reduce <tt>q</tt> without significantly increasing <tt>v</tt>.</t>
      </section>
      <section anchor="single-key-examples">
        <name>Single-Key Examples</name>
        <t>Note: The following example limits purely serve as illustration of the formulas
given in this section. They do not constitute general guidance; every application
has to choose their own advantage targets and consider their deployment properties,
such as message sizes. As mentioned earlier, for settings where multiple keys are
deployed (like rekeying, multiple connections, etc.), the examples in this section
MUST NOT be used; refer instead to those in <xref target="mu-limits"/>.</t>
        <t>An example protocol might choose to aim for a single-key CA and IA that is at
most 2<sup>-50</sup>.  (This in particular limits offline work to <tt>o &lt;= 2^(k-50)</tt>,
see <xref target="offline-work"/>.)  If the messages exchanged in the protocol are at most a
common Internet MTU of around 1500 bytes, then a value for <tt>L</tt> might be set to
2<sup>7</sup>.  <xref target="ex-table-su"/> shows limits for <tt>q</tt> and <tt>v</tt> that might be
chosen under these conditions.</t>
        <table anchor="ex-table-su">
          <name>Example single-key limits; see text for parameter details</name>
          <thead>
            <tr>
              <th align="left">AEAD</th>
              <th align="right">Maximum q</th>
              <th align="right">Maximum v</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">AEAD_AES_128_GCM</td>
              <td align="right">2<sup>32.5</sup></td>
              <td align="right">2<sup>64</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM</td>
              <td align="right">2<sup>32.5</sup></td>
              <td align="right">2<sup>64</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_CHACHA20_POLY1305</td>
              <td align="right">n/a</td>
              <td align="right">2<sup>46</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM</td>
              <td align="right">2<sup>30</sup></td>
              <td align="right">2<sup>30</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM_8</td>
              <td align="right">2<sup>30.4</sup></td>
              <td align="right">2<sup>13</sup></td>
            </tr>
          </tbody>
        </table>
        <t>AEAD_CHACHA20_POLY1305 provides no limit to <tt>q</tt> based on the provided single-user
analyses.</t>
        <t>The limit for <tt>q</tt> on AEAD_AES_128_CCM and AEAD_AES_128_CCM_8 is reduced due to a
need to reduce the value of <tt>q</tt> to ensure that IA does not exceed the target.
This assumes equal proportions for <tt>q</tt> and <tt>v</tt> for AEAD_AES_128_CCM.
AEAD_AES_128_CCM_8 permits a much smaller value of <tt>v</tt> due to the shorter tag,
which permits a higher limit for <tt>q</tt>.</t>
        <t>Some protocols naturally limit <tt>v</tt> to 1, such as TCP-based variants of TLS, which
terminate sessions on decryption failure.  If <tt>v</tt> is limited to 1, <tt>q</tt> can be
increased to 2<sup>31</sup> for both CCM AEADs.</t>
      </section>
    </section>
    <section anchor="mu-limits">
      <name>Multi-Key AEAD Limits</name>
      <t>In the multi-key setting, each user is assumed to have an independent and
uniformly distributed key, though nonces may be re-used across users with some
very small probability. The success probability in attacking one of these many
independent keys can be generically bounded by the success probability of
attacking a single key multiplied by the number of keys present <xref target="MUSecurity"/>, <xref target="GCM-MU"/>.
Absent concrete multi-key bounds, this means the attacker advantage in the multi-key
setting is the product of the single-key advantage and the number of keys.</t>
      <t>This section summarizes the confidentiality and integrity bounds and limits for
the same algorithms as in <xref target="su-limits"/> for the multi-key setting. The CL
and IL values bound the total number of encryption and forgery queries (q and v).
Alongside each value, we also specify these bounds.</t>
      <section anchor="aeadaes128gcm-and-aeadaes256gcm-1">
        <name>AEAD_AES_128_GCM and AEAD_AES_256_GCM</name>
        <t>Concrete multi-key bounds for AEAD_AES_128_GCM and AEAD_AES_256_GCM exist due to
Theorem 4.3 in <xref target="GCM-MU2"/>, which covers protocols with nonce randomization,
like TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>. Here, the full nonce is XORed with
a secret, random offset. The bound for nonce randomization was further improved
in <xref target="ChaCha20Poly1305-MU"/>.</t>
        <t>Results for AES-GCM with random, partially implicit nonces <xref target="RFC5288"/> are
captured by Theorem 5.3 in <xref target="GCM-MU2"/>, which apply to protocols such as TLS 1.2
<xref target="RFC5246"/>. Here, the implicit part of the nonce is a random value, of length
at least 32 bits and fixed per key, while we assume that the explicit part of
the nonce is chosen using a non-repeating process. The full nonce is the
concatenation of the two parts. This produces similar limits under most
conditions.  Note that implementations that choose the explicit part at random
have a higher chance of nonce collisions and are not considered for the
limits in this section.</t>
        <t>For this AEAD, <tt>n = 128</tt> (the AES block length), <tt>t = 128</tt>, and <tt>r = 96</tt>; the key length is <tt>k = 128</tt>
or <tt>k = 256</tt> for AEAD_AES_128_GCM and AEAD_AES_256_GCM respectively.</t>
        <section anchor="mu-gcm-ae">
          <name>Authenticated Encryption Security Limit</name>
          <!--
    From {{GCM-MU2}} Theorem 4.3; for nonce randomization (XN transform).

    Let:
        - #blocks encrypted/verified overall:   \sigma = (q + v) * L
        - worst-case  o (offline work), q+v, \sigma <= 2^95
          (Theorem 4.3 requires q <= 2^(1-e)r ; this yields e >= 0.0104, hence
          d = 1,5/e -1 <= 143 <= 2^8.)

    We can simplify the Theorem 4.3 advantage bound as follows:
        - Note: Last term is 2^-48; hence any other term <= 2^-50 is negligible.
        - 1st term (../2^k):  roughly <= 2^8 * (o + q+v + \sigma) / 2^k
           roughly <= (o + (q+v)*L) / 2^(k-8)
          This is negligible for k = 256.
          For k = 128, it is negligible if o, (q+v)*L <= 2^70.
          For o <= 2^70 and B >= 2^8, it is dominated by the 2nd term;
            we assume that and hence omit the 1st term.
          If B is small and k = 128, then \sigma might be relevant and
            we can add n*\sigma/2^128
        - 2nd term (../2^n):
          \sigma*(2B + cn + 2)/2^n = \sigma*(B + 97)/2^127
          Assuming that B >> 100, the dominant term is \sigma*B/2^127
        - 3rd term (../2^2n):  <= 2^-160, negligible.
        - 4th term (../2^(k+n)):  roughly <= (\sigma^2 + 2o(q+v)) / 2^256
          <= 2^-64, negligible.
        - 5th term (2^(-r/2)):  = 2^-48

    The 5th term, ensuring that the adversary is d-repeating ({{GCM-MU2}},
    Theorem 4.2), was improved in {{ChaCha20Poly1305-MU}} Theorem 7.1 to
      2^-(\delta * r)
    for which \delta can be chosen as \delta = 2 for d < 2^9.
    As d < 2^9 does not affect the above simplifications, this only makes the
    5th term negligible (2^-192), and allows to omit it.
-->
<t>Protocols with nonce randomization have a limit of:</t>
          <artwork><![CDATA[
AEA <= (q+v)*L*B / 2^127
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
q + v <= p * 2^127 / (L * B)
]]></artwork>
          <t>This assumes that <tt>B</tt> is much larger than 100; that is, each user enciphers
significantly more than 1600 bytes of data.  Otherwise, <tt>B</tt> should be increased by 161 for
AEAD_AES_128_GCM and by 97 for AEAD_AES_256_GCM.  For AEAD_AES_128_GCM, it further assumes
<tt>o &lt;= 2^70</tt>, otherwise a term in the order of <tt>o / 2^120</tt> starts dominating.</t>
          <!--
    From {{GCM-MU2}} Theorem 5.3; for partial random nonces (CN transform).

    Let:
        - #blocks encrypted/verified overall:   \sigma = (q + v) * L
        - length R of random implicit nonce part: R = 32 (bits), as in TLS 1.2/RFC5288
        - worst-case  o (offline work), q+v, \sigma <= 2^77  (as per 1st term)
          (Theorem 5.3 requires R >= 32 [satisfied], o <= 2^(n-2);
          yields d = (q+v)R/2^(R-1) = (q+v)/2^26.)

    We can simplify the Theorem 5.3 advantage bound as follows:
        - 1st term (../2^k):  roughly <= ((q+v)/2^26 * (o + q+v) + n*\sigma) / 2^k
           roughly <= ((q+v)*o + (q+v)^2) / 2^(k+26) + (q+v)*l / 2^(k-7)
          This is negligible for k = 256.
          The second part ("(q+v)*l / 2^(k-7)") is negligible compared to the
             first part (and the 2nd term).
          For k = 128, what remains is:  ((q+v)*o + (q+v)^2) / 2^(k+26)
             which dominates the 2nd term if q+v > B*L*2^25.
        - 2nd term (../2^n):
          \sigma*(2B + cn + 2)/2^n = \sigma*(B + 97)/2^127
          Assuming that B >> 100, the dominant term is \sigma*B/2^127
        - 3rd term (../2^2n):  <= 2^-160, negligible.
        - 4th term (../2^(k+n)):  roughly <= (\sigma^2 + 2o(q+v)) / 2^256
          <= 2^-100, negligible.
        - 5th term (2^(-7R)):  = 2^-224, negligible.
-->

<t>Protocols with random, partially implicit nonces have the following limit,
which is similar to that for nonce randomization:</t>
          <artwork><![CDATA[
AEA <= (((q+v)*o + (q+v)^2) / 2^(k+26)) + ((q+v)*L*B / 2^127)
]]></artwork>
          <t>The first term is negligible if <tt>k = 256</tt>; this implies the following simplified
limits:</t>
          <artwork><![CDATA[
AEA <= (q+v)*L*B / 2^127
q + v <= p * 2^127 / (L * B)
]]></artwork>
          <t>For <tt>k = 128</tt>, assuming <tt>o &lt;= q + v</tt> (i.e., that the attacker does not spend
more work than all legitimate protocol users together), the limits are:</t>
          <!--
    Simplifying
      p >= (((q+v)*o + (q+v)^2) / 2^(k+26)) + ((q+v)*L*B / 2^127)

    to

      p/2 >= ((q+v)*o + (q+v)^2) / 2^(k+26)
      AND
      p/2 >= (q+v)*L*B / 2^127

    and assuming o <= q+v
    yields

      q+v <= sqrt(p) * 2^76
      AND
      q+v <= p * 2^126 / (L * B)
-->

<artwork><![CDATA[
AEA <= (((q+v)*o + (q+v)^2) / 2^154) + ((q+v)*L*B / 2^127)
q + v <= min( sqrt(p) * 2^76,  p * 2^126 / (L * B) )
]]></artwork>
        </section>
        <section anchor="confidentiality-limit-3">
          <name>Confidentiality Limit</name>
          <!--
    From {{GCM-MU2}} Theorem 4.3,
    substracting terms for Pr[Bad_7] and Pr[Bad_8],
    and applying simplifications as above (note there are no verification queries),
    we obtain:

    Adv^{mu-ae w/o INT}_RCAU <=
        2^8 * (o + q) / 2^k   +  \sigma*B/2^127

    For o <= 2^70 and any B, the 1st term is dominated by the 2nd term;
    we assume that and hence again omit the 1st term.
-->

<t>The confidentiality advantage is essentially dominated by the same term as
the AE advantage for protocols with nonce randomization:</t>
          <artwork><![CDATA[
CA <= q*L*B / 2^127
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
q <= p * 2^127 / (L * B)
]]></artwork>
          <!--
    From {{GCM-MU2}} Theorem 5.3,
    subtracting terms for Pr[Bad_7] and Pr[Bad_8],
    and applying simplifications as above (note there are no verification queries),
    we obtain:

    Adv^{mu-ae w/o INT}_CGCM <=
        q * (o + q) / 2^(k+26)   +   \sigma*B/2^127
-->

<t>Similarly, the limits for protocols with random, partially implicit nonces are:</t>
          <artwork><![CDATA[
CA <= ((q*o + q^2) / 2^(k+26)) + (q*L*B / 2^127)
q <= min( sqrt(p) * 2^76,  p * 2^126 / (L * B) )
]]></artwork>
        </section>
        <section anchor="integrity-limit-3">
          <name>Integrity Limit</name>
          <t>There is currently no dedicated integrity multi-key bound available for
AEAD_AES_128_GCM and AEAD_AES_256_GCM. The AE limit can be used to derive
an integrity limit as:</t>
          <artwork><![CDATA[
IA <= AEA
]]></artwork>
          <t><xref target="mu-gcm-ae"/> therefore contains the integrity limits.</t>
        </section>
      </section>
      <section anchor="aeadchacha20poly1305-1">
        <name>AEAD_CHACHA20_POLY1305</name>
        <t>Concrete multi-key bounds for AEAD_CHACHA20_POLY1305 are given in Theorem 7.2
in <xref target="ChaCha20Poly1305-MU"/>, covering protocols with nonce randomization like
TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>.</t>
        <t>For this AEAD, <tt>n = 512</tt> (the ChaCha20 block length), <tt>k = 256</tt>, <tt>t = 128</tt>, and <tt>r = 96</tt>;
the length (<tt>L'</tt>) is the sum of AAD and plaintext (in Poly1305 blocks of 128 bits).</t>
        <section anchor="mu-ccp-ae">
          <name>Authenticated Encryption Security Limit</name>
          <!--
    From {{ChaCha20Poly1305-MU}} Theorem 7.2; for nonce randomization (XN transform).

    Let:
        - d: the max. number of times any nonce is repeated across users
        - \delta: the nonce-randomizer result's parameter
        - d = r * (\delta + 1) - 1 < 2^9, \delta = 2 be fixed, satisfying Theorem 7.2
        - this limits the number of encryption queries to q <= r * 2^(r-1) <= 2^101
        - o, B <= 2^261 as required for Theorem 7.2

    We can simplify the Theorem 7.2 advantage bound as follows:
        - 1st term:  v([constant]* L' + 3)/2^t
          Via Theorem 3.4, the more precise term is:  v * (2^25 * (L' + 1) + 3) / 2^128
          The 3v/2^t summand is dominated by the rest, so we simplify to
            (v * (L' + 1)) / 2^103

        - 2nd term:  d(o + q)/2^k
          For d < 2^9 (as above) and o + q <= 2^145, this is dominated by the 1st term;
          [[ 1st term <= 2nd term as long as v * (L' + 1)/2^103 <= d(o + q)/2^256;
          i.e., o + q <= v * (L' + 1) * 2^153 / d.
          Even for minimal values v = 1 and l = 1 in 1st term, with d < 2^9,
          this holds as long as o + q <= 2^145. ]]
            we assume that and hence omit the 2nd term.

        - 3rd term:  2o * (n - k)/2^k
          This is dominated by the 2nd term; we hence omit it.

        - 4th term:  2v * (n - k + 4t)/2^k
          This is dominated by the 1st term; we hence omit it.

        - 5th term:  (B + q)^2/2^(n+1)
          This is dominated by the 1st term as long as B + q < 2^205;
          i.e., negligible and we hence omit it.

        - 6th term:  1/2^(2t-2) = 2^-254
          This is negligible, we hence omit it.

        - 7th term:  1/2^(n - k - 2) = 2^-254
          This is negligible, we hence omit it.

        - 8th term:  1/(\delta * r)
          This is 2^-192 for the chosen \delta = 2, hence negligible and we omit it.
-->

<t>Protocols with nonce randomization have a limit of:</t>
          <artwork><![CDATA[
AEA <= (v * (L' + 1)) / 2^103
]]></artwork>
          <t>It implies the following limit:</t>
          <artwork><![CDATA[
v <= (p * 2^103) / (L' + 1)
]]></artwork>
          <t>Note that this is the same limit as in the single-user case except that the
total number of forgery attempts (<tt>v</tt>) and maximum message length in Poly1305 blocks (<tt>L'</tt>)
is calculated across all used keys.</t>
        </section>
        <section anchor="confidentiality-limit-4">
          <name>Confidentiality Limit</name>
          <!--
    From {{ChaCha20Poly1305-MU}} Theorem 7.2
    subtracting terms for Pr[Bad_5] and Pr[Bad_6],
    and applying simplifications as above (note there are no verification queries),
    the remaining relevant terms are:

        - 2nd term:  d(o + q)/2^k
          As d < 2^9, this is upper bounded by   (o+q)/2^247

        - 3rd term:  2o * (n - k)/2^k
          This is  o/2^247 , dominated by the 2nd term; we hence omit it.

        - 5th term:  (B + q)^2/2^(n+1)

          This is dominated by the 2nd term as long as B + q < sqrt(o+q) * 2^133.

          We omit this term on the basis that B <= qL and there is no value
          of q less than 2^100 (see below) for which B > sqrt(q) * 2^133 given
          that constraint.

          Even with a single user and a single key such that B = qL, and no
          offline work from the adversary (o = 0) the term is only relevant when
          qL = sqrt(q) * 2^133.  With q capped at 2^100, the smallest value
          of l that can result from this is 2^83, which far exceeds the maximum
          size of a single message at 2^32.

        - 8th term:  1/(\delta * r)
          This is 2^-192 for the chosen \delta = 2, hence negligible and we omit it.
-->

<t>While the AE advantage is dominated by the number of forgery attempts <tt>v</tt>, those
are irrelevant for the confidentiality advantage. The relevant limit for
protocols with nonce randomization becomes dominated, at a very low level, by
the adversary's offline work <tt>o</tt> and the number of protected messages <tt>q</tt>
across all used keys:</t>
          <artwork><![CDATA[
CA <= (o + q) / 2^247
]]></artwork>
          <!--
    In addition, the restrictions on q from {{ChaCha20Poly1305-MU}} Theorem 7.2
    applies: q <= r * 2^(r-1) <= 2^101.
    We round this to 2^100; this value can be slightly increased trading off d.
-->

<t>This implies the following simplified limit, which for most reasonable values of
<tt>p</tt> is dominated by a technical limitation of approximately <tt>q = 2^100</tt>:</t>
          <artwork><![CDATA[
q <= min( p * 2^247 - o, 2^100 )
]]></artwork>
        </section>
        <section anchor="integrity-limit-4">
          <name>Integrity Limit</name>
          <t>The AE limit for AEAD_CHACHA20_POLY1305 essentially is the integrity (multi-key)
bound. The former hence also applies to the latter:</t>
          <artwork><![CDATA[
IA <= AEA
]]></artwork>
          <t><xref target="mu-ccp-ae"/> therefore contains the integrity limits.</t>
        </section>
      </section>
      <section anchor="aeadaes128ccm-and-aeadaes128ccm8">
        <name>AEAD_AES_128_CCM and AEAD_AES_128_CCM_8</name>
        <t>Concrete multi-key bounds for AEAD_AES_128_CCM and AEAD_AES_128_CCM_8 are given
in Theorem 7.2 in <xref target="CCM-MU"/>, covering protocols with nonce randomization like
TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>.</t>
        <t>For this AEAD, <tt>n = 128</tt> (the AES block length), <tt>k = 128</tt>, <tt>r = 96</tt>, and the tag
length is <tt>t = 128</tt> (for AEAD_AES_128_CCM) or <tt>t = 64</tt> (for AEAD_AES_128_CCM_8).</t>
        <!--
    From {{CCM-MU}} Theorem 7.2; for d-bound adversaries assuming nonce randomization.

    Let:
        - #blocks encrypted/verified overall:   \sigma = (q + v) * L
        - #blocks encrypted/verified per user:  \sigma_u = C
        - nonce length r = 96, block length n = 128
        - d-bound for d = 96 / log(96) ~ 15,
          ensured up to q = 2^96 total encryption queries

    Following the discussion of Theorem 7.2, the dominant terms in the bound are:
        - 1st term:   q_d / 2^t
        - 2nd term:   \sigma_u * \sigma / 2^n
        - 3rd term:   (d + n/log(n))*o / 2^k  <=  o / 2^(k-6)

    Going from d-bound adversaries to unbounded introduces an additional term of
      2^-(\delta * r)
    ({{ChaCha20Poly1305-MU}} Theorem 7.1)
    for which \delta can be chosen as \delta = 2 for d < 2^9.
    As d < 2^9 does not affect the above simplifications, this makes this
    term negligible (2^-192 for nonce length r=96), and allows to omit it.
-->
<t>Protocols with nonce randomization have a limit of:</t>
        <artwork><![CDATA[
AEA <= (q+v)*L*B / 2^127 + v / 2^t + o / 2^(k-6)
]]></artwork>
        <t>Assuming <tt>o &lt;= q + v</tt> (i.e., that the attacker does not spend more work than all
legitimate protocol users together), this implies the following two limits
(distributing the attack probability evenly among the first two terms):</t>
        <!--
    Simplifying
      p >= (q+v)*L*B / 2^n + v / 2^t

    to

      p/2 >= (q+v)*L*C / 2^n
      AND
      p/2 >= v / 2^t

    (and assuming o <= q+v meaning the 3rd term is dominated)
    yields, for n = 128,

      q+v <= p * 2^127 / (L * C)
      AND
      v <= p * 2^(t-1)
-->

<artwork><![CDATA[
q + v <= p * 2^127 / (L * C)
v <= p * 2^(t-1)
]]></artwork>
      </section>
      <section anchor="multi-key-examples">
        <name>Multi-Key Examples</name>
        <t>Note: The following example limits purely serve as illustration of the formulas
given in this section. They do not constitute general guidance; every application
has to choose their own advantage targets and consider their deployment properties,
such as message sizes.</t>
        <t>An example protocol might choose to aim for a multi-key AEA, CA, and IA that is at
most 2<sup>-50</sup>.  If the messages exchanged in the protocol are at most a
common Internet MTU of around 1500 bytes, then a value for <tt>L</tt> might be set to
2<sup>7</sup>.  <xref target="ex-table-mu"/> shows limits for <tt>q</tt> and <tt>v</tt> across all keys that
might be chosen under these conditions.</t>
        <table anchor="ex-table-mu">
          <name>Example multi-key limits; see text for parameter details</name>
          <thead>
            <tr>
              <th align="left">AEAD</th>
              <th align="right">Maximum q</th>
              <th align="right">Maximum v</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">AEAD_AES_128_GCM</td>
              <td align="right">2<sup>69</sup>/B</td>
              <td align="right">2<sup>69</sup>/B</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM</td>
              <td align="right">2<sup>69</sup>/B</td>
              <td align="right">2<sup>69</sup>/B</td>
            </tr>
            <tr>
              <td align="left">AEAD_CHACHA20_POLY1305</td>
              <td align="right">2<sup>100</sup></td>
              <td align="right">2<sup>46</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM</td>
              <td align="right">2<sup>69</sup>/C</td>
              <td align="right">2<sup>69</sup>/C</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM_8</td>
              <td align="right">2<sup>69</sup>/C</td>
              <td align="right">2<sup>13</sup></td>
            </tr>
          </tbody>
        </table>
        <t>The limits for AEAD_AES_128_GCM, AEAD_AES_256_GCM, AEAD_AES_128_CCM, and
AEAD_AES_128_CCM_8 assume equal proportions for <tt>q</tt> and <tt>v</tt>. The limits for
all schemes assume the use
of nonce randomization, like in TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>, and
offline work limited to <tt>o &lt;= 2^70</tt>.</t>
        <t>The limits for AEAD_AES_128_GCM, AEAD_AES_256_GCM, AEAD_AES_128_CCM and
AEAD_AES_128_CCM_8 further depend on the maximum number (<tt>B</tt> resp. <tt>C</tt>) of 128-bit
blocks encrypted resp. encrypted or decrypted by any single key. For example,
limiting the number of messages (of size &lt;= 2<sup>7</sup> blocks) encrypted,
resp. encrypted or decrypted, to at most 2<sup>20</sup> (about a million) per key
results in <tt>B</tt> resp. <tt>C</tt> of 2<sup>27</sup>, which
limits both <tt>q</tt> and <tt>v</tt> to 2<sup>42</sup> messages for GCM and CCM, except
for CCM_8 where the short tag length limits <tt>v</tt> to 2<sup>13</sup>.</t>
      </section>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>The different analyses of AEAD functions that this work is based upon generally
assume that the underlying primitives are ideal.  For example, that a
pseudorandom function (PRF) used by the AEAD is indistinguishable from a truly
random function or that a pseudorandom permutation (PRP) is indistinguishable
from a truly random permutation. Thus, the advantage estimates assume that the
attacker is not able to exploit a weakness in an underlying primitive.</t>
      <t>Many of the formulae in this document depend on simplifying assumptions, from
differing models, which means that results are not universally applicable. When
using this document to set limits, it is necessary to validate all these
assumptions for the setting in which the limits might apply. In most cases, the
goal is to use assumptions that result in setting a more conservative limit, but
this is not always the case. As an example of one such simplification, this
document defines <tt>v</tt> as the total number of decryption queries leading to a
successful forgery (that is, the number of failed forgery attempts plus one),
whereas models usually include all forgery attempts when determining <tt>v</tt>.</t>
      <t>The CA, IA, and AEA values defined in this document are upper bounds based on existing
cryptographic research. Future analysis may introduce tighter bounds. Applications
SHOULD NOT assume these bounds are rigid, and SHOULD accommodate changes.</t>
      <t>Note that the limits in this document apply to the adversary's ability to
conduct a single successful forgery. For some algorithms and in some cases,
an adversary's success probability in repeating forgeries may be noticeably
larger than that of the first forgery. As an example, <xref target="MF05"/> describes
such multiple forgery attacks in the context of AES-GCM in more detail.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not make any request of IANA.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="GCM">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</title>
            <author initials="M." surname="Dworkin">
              <organization/>
            </author>
            <date year="2007" month="November"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-38D"/>
        </reference>
        <reference anchor="GCMProofs" target="https://eprint.iacr.org/2012/438.pdf">
          <front>
            <title>Breaking and Repairing GCM Security Proofs</title>
            <author initials="T." surname="Iwata">
              <organization/>
            </author>
            <author initials="K." surname="Ohashi">
              <organization/>
            </author>
            <author initials="K." surname="Minematsu">
              <organization/>
            </author>
            <date year="2012" month="August" day="01"/>
          </front>
        </reference>
        <reference anchor="ChaCha20Poly1305-SU" target="https://eprint.iacr.org/2014/613.pdf">
          <front>
            <title>A Security Analysis of the Composition of ChaCha20 and Poly1305</title>
            <author initials="G." surname="Procter">
              <organization/>
            </author>
            <date year="2014" month="August" day="11"/>
          </front>
        </reference>
        <reference anchor="AEBounds" target="https://eprint.iacr.org/2024/051.pdf">
          <front>
            <title>Limits on Authenticated Encryption Use in TLS</title>
            <author initials="A." surname="Luykx">
              <organization/>
            </author>
            <author initials="K." surname="Paterson">
              <organization/>
            </author>
            <date year="2016" month="March" day="08"/>
          </front>
        </reference>
        <reference anchor="AEComposition" target="https://eprint.iacr.org/2000/025.pdf">
          <front>
            <title>Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="C." surname="Namprempre">
              <organization/>
            </author>
            <date year="2007" month="July"/>
          </front>
        </reference>
        <reference anchor="AEAD" target="https://web.cs.ucdavis.edu/~rogaway/papers/ad.pdf">
          <front>
            <title>Authenticated-Encryption with Associated-Data</title>
            <author initials="P." surname="Rogaway">
              <organization/>
            </author>
            <date year="2002" month="September"/>
          </front>
        </reference>
        <reference anchor="MUSecurity" target="https://cseweb.ucsd.edu/~mihir/papers/musu.pdf">
          <front>
            <title>Public-Key Encryption in a Multi-user Setting: Security Proofs and Improvements</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="A." surname="Boldyreva">
              <organization/>
            </author>
            <author initials="S." surname="Micali">
              <organization/>
            </author>
            <date year="2000" month="May"/>
          </front>
        </reference>
        <reference anchor="GCM-MU" target="https://eprint.iacr.org/2016/564.pdf">
          <front>
            <title>The Multi-User Security of Authenticated Encryption: AES-GCM in TLS 1.3</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="B." surname="Tackmann">
              <organization/>
            </author>
            <date year="2017" month="November" day="27"/>
          </front>
        </reference>
        <reference anchor="GCM-MU2" target="https://eprint.iacr.org/2018/993.pdf">
          <front>
            <title>The Multi-user Security of GCM, Revisited: Tight Bounds for Nonce Randomization</title>
            <author initials="V. T." surname="Hoang">
              <organization/>
            </author>
            <author initials="S." surname="Tessaro">
              <organization/>
            </author>
            <author initials="A." surname="Thiruvengadam">
              <organization/>
            </author>
            <date year="2018" month="October" day="15"/>
          </front>
        </reference>
        <reference anchor="ChaCha20Poly1305-MU" target="https://eprint.iacr.org/2023/085.pdf">
          <front>
            <title>The Security of ChaCha20-Poly1305 in the Multi-user Setting</title>
            <author initials="J. P." surname="Degabriele">
              <organization/>
            </author>
            <author initials="J." surname="Govinden">
              <organization/>
            </author>
            <author initials="F." surname="Günther">
              <organization/>
            </author>
            <author initials="K. G." surname="Paterson">
              <organization/>
            </author>
            <date year="2023" month="January" day="24"/>
          </front>
        </reference>
        <reference anchor="CCM-MU" target="https://eprint.iacr.org/2025/953.pdf">
          <front>
            <title>Tight Multi-User Security of CCM and Enhancement by Tag-Based Key Derivation Applied to GCM and CCM</title>
            <author initials="Y." surname="Naito">
              <organization/>
            </author>
            <author initials="Y." surname="Sasaki">
              <organization/>
            </author>
            <author initials="T." surname="Sugawara">
              <organization/>
            </author>
            <date year="2018" month="October" day="15"/>
          </front>
        </reference>
        <reference anchor="RFC5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <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="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="RFC8439">
          <front>
            <title>ChaCha20 and Poly1305 for IETF Protocols</title>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This document defines the ChaCha20 stream cipher as well as the use of the Poly1305 authenticator, both as stand-alone algorithms and as a "combined mode", or Authenticated Encryption with Associated Data (AEAD) algorithm.</t>
              <t>RFC 7539, the predecessor of this document, was meant to serve as a stable reference and an implementation guide. It was a product of the Crypto Forum Research Group (CFRG). This document merges the errata filed against RFC 7539 and adds a little text to the Security Considerations section.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8439"/>
          <seriesInfo name="DOI" value="10.17487/RFC8439"/>
        </reference>
        <reference anchor="RFC6655">
          <front>
            <title>AES-CCM Cipher Suites for Transport Layer Security (TLS)</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="D. Bailey" initials="D." surname="Bailey"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This memo describes the use of the Advanced Encryption Standard (AES) in the Counter with Cipher Block Chaining - Message Authentication Code (CBC-MAC) Mode (CCM) of operation within Transport Layer Security (TLS) and Datagram TLS (DTLS) to provide confidentiality and data origin authentication. The AES-CCM algorithm is amenable to compact implementations, making it suitable for constrained environments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6655"/>
          <seriesInfo name="DOI" value="10.17487/RFC6655"/>
        </reference>
        <reference anchor="CCM-ANALYSIS">
          <front>
            <title>On the Security of CTR + CBC-MAC</title>
            <author fullname="Jakob Jonsson" initials="J." surname="Jonsson">
              <organization/>
            </author>
            <date year="2003"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 76-93"/>
          <seriesInfo name="DOI" value="10.1007/3-540-36492-7_7"/>
          <seriesInfo name="ISBN" value="[&quot;9783540006220&quot;, &quot;9783540364924&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NonceDisrespecting" target="https://eprint.iacr.org/2016/475.pdf">
          <front>
            <title>Nonce-Disrespecting Adversaries -- Practical Forgery Attacks on GCM in TLS</title>
            <author initials="H." surname="Bock">
              <organization/>
            </author>
            <author initials="A." surname="Zauner">
              <organization/>
            </author>
            <author initials="S." surname="Devlin">
              <organization/>
            </author>
            <author initials="J." surname="Somorovsky">
              <organization/>
            </author>
            <author initials="P." surname="Jovanovic">
              <organization/>
            </author>
            <date year="2016" month="May" day="17"/>
          </front>
        </reference>
        <reference anchor="MF05" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/CWC-GCM/multi-forge-01.pdf">
          <front>
            <title>Multiple forgery attacks against Message Authentication Codes</title>
            <author initials="D. A." surname="McGrew">
              <organization/>
            </author>
            <author initials="S. R." surname="Fluhrer">
              <organization/>
            </author>
            <date year="2005" month="May" day="31"/>
          </front>
        </reference>
        <reference anchor="TLS">
          <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="RFC8645">
          <front>
            <title>Re-keying Mechanisms for Symmetric Keys</title>
            <author fullname="S. Smyshlyaev" initials="S." role="editor" surname="Smyshlyaev"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>A certain maximum amount of data can be safely encrypted when encryption is performed under a single key. This amount is called the "key lifetime". This specification describes a variety of methods for increasing the lifetime of symmetric keys. It provides two types of re-keying mechanisms based on hash functions and block ciphers that can be used with modes of operations such as CTR, GCM, CBC, CFB, and OMAC.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8645"/>
          <seriesInfo name="DOI" value="10.17487/RFC8645"/>
        </reference>
        <reference anchor="SIV">
          <front>
            <title>AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption</title>
            <author fullname="S. Gueron" initials="S." surname="Gueron"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="Y. Lindell" initials="Y." surname="Lindell"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This memo specifies two authenticated encryption algorithms that are nonce misuse resistant -- that is, they do not fail catastrophically if a nonce is repeated.</t>
              <t>This document is the product of the Crypto Forum Research Group.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8452"/>
          <seriesInfo name="DOI" value="10.17487/RFC8452"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="RFC5288">
          <front>
            <title>AES Galois Counter Mode (GCM) Cipher Suites for TLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="A. Choudhury" initials="A." surname="Choudhury"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This memo describes the use of the Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM) as a Transport Layer Security (TLS) authenticated encryption operation. GCM provides both confidentiality and data origin authentication, can be efficiently implemented in hardware for speeds of 10 gigabits per second and above, and is also well-suited to software implementations. This memo defines TLS cipher suites that use AES-GCM with RSA, DSA, and Diffie-Hellman-based key exchange mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5288"/>
          <seriesInfo name="DOI" value="10.17487/RFC5288"/>
        </reference>
        <reference anchor="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
      </references>
    </references>
    <?line 1168?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>In addition to the authors of papers performing analysis of ciphers, thanks are
owed to
<contact fullname="Mihir Bellare"/>,
<contact fullname="Thomas Bellebaum"/>,
<contact fullname="Daniel J. Bernstein"/>,
<contact fullname="Scott Fluhrer"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="Jérôme Govinden"/>,
<contact fullname="John Mattsson"/>,
<contact fullname="David McGrew"/>,
<contact fullname="Yoav Nir"/>,
<contact fullname="Thomas Pornin"/>, and
<contact fullname="Alexander Tereschenko"/>
for helping making this document better.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19W3sbx5Xge/+KivxgwAJAALyKsp0BIclmhrqsSMXJJLbQ
BApED4FuqLsBipGU3zKv+76P+7T5Y3tudekLQEr2ZHa/b/w5MQh0V506derc
z6l2ux3kUT7Xx+pNFl5pdRYtojxTSawGTwdP1GB+laRRPltkQXh5mer1MX/P
jwWTZByHC3h5kobTvB2l+bQ9nqZX7VCHk/acHmr3esE4zDUMdHusoniaBFme
6nBxrE5fXzwLAhhzN7jWtzdJOjkOlGqrLJxq+sAj0MdxervMkyAIV/ksSeG5
toLBsmP1rKN++Mf/jvOZTuFBpRigZ3oevS/+kKRXMOXJc/VaZzpMxzP1dJUm
Sw0j/dsqjcYzekovwmh+rPD//2WKg1ytNI3RIdDttM876mKWLLIk9mZ9HqZ5
FBd+oFmfJ3+L5vOwMEH+L/PkBoYGEG47sc7d0MOOGnTUT0ky8YYeztIoy5Ml
QFL4lcYfzpPVZDoPU+1PMQ5v/mWmw2UUX10CGmmSIE7SRZhHa42o/mH4/Jje
EBp48FqPk8VCxxN4BGhgmqTqZJ6Mr9UwopmfJxMN1DFVL5c6pWeO1Q/hPImy
nWGyinN5RDVg5KYK44n64flg+IDmgDFhin63e4gkgd/YvaR/2haxT4AUriPG
X6bTSGeIe/Pci9Pzi2N1vtTjKJyrV6vLeTRmcI+63fbu0RNe2Ks0SaZZcXkn
QHcw8BVB9lovwyjFv+Bpda7HQAT5reL3GOQ8TK90fqxmeb7Mjnd29BKezztR
OE47gPidfrfX39nbPeosJ9PCGnv9dveo3d2yzIuOOr0J87D47b921MtZmM2i
ytfPoxi2Nc9W8MtwFsK//e6rZH7b2+3ut8/fFNc5cMsZxOH8Noto04CM1TBZ
LJMsInzBV2YowogZ78FmsH/oIILGuZwpu949XK9s6z2wtrdz0NsVrA2engDp
TEpb5TEigAPOCW6ynqinMXECBP9NphWetrPzLQDDWTlb3V6/ryD0FQyXmlNq
13HQ7u7CUu65jv7eTne/Z9fh4ba0HxuWcAxEOCfazVS4SIAU40T+gu0IS1t3
pWM4DGM19rZwGabhJLpabMEAHKgTPbfMwX4PbOZFuFimGv9XPqHdw3uioNvd
6fb3LQoGT7asvO1t3g1IFTXIsgROMf70BM7ClkW86qjXyVV4E94WIYVz9qgW
0ht92RlnndV4Eq6jrKMnq52/pzzCzjIE7pXthBMB+/kbc1yKwDNvaf+rvvXJ
DkguVM9X8zxqr4A7wVHLgekDFy6xENrDU0BustbAUvPsC/YIqPckmU9uQfKW
OMU5soRxOI+K+Oi2u/u1+BhnGlGyGmcTRsYimkWpQcVila0EGcAM289L/OQC
qI9X/IZXLAsFwtxM2oOn523krHxEVa+ze2+merCzf7BXZaooONr9w89H4wkI
63B8vQjj2K6wv2mJq/IS4fkWHFQgowjWCKw7uprlipkWicgXSTzW6jXsd7KI
/kbn+d5LPdp59Gi3ulRgpt12b3/zUv/YQRHyYxLGVxXCuNBZFqZJhZQuYMdX
ax1fhZNwUSdH6vbdx4R5oW3ewM3Ny5ij43BfBPR3d7pH+xUE9IELw17vbUbA
HzrIFJ7oq/ASNIS5rvz6Q7KO4omOiz+U1UVfJPxQkArDuoNAW7/hKMALdOaf
xrMQCALPvLq8Bcq7ap+EGZwOZCRPgIWvWV0ZLJfzCL7OE9JA8FUY4t6I2995
tP8llPNn5PtRnlS+PQ8z0I4qasr5CrlmGgZBgGqYpz4S3T+JslRnoI0RE7z/
Cd87dLtu0EsDtgsjqsFkDTsSohao2m3greEYuc1cPYOhdAoaTp7D2SZVwbGb
Lbz2R+Sp4+vK6fi3cBWXieIcKWw9j+IKdZ0niwQ4e3Z9WxFUf0jWYQzEN66o
FvvtHnKv58+6+wW6IoJazjVyE1pTKGsKr0IYFSgOTzSYZx63RQoaojq+gd2n
404MFkPnKlnvDM9fD3cWehKFOyCb/h0wm+2QXt9mvb59ocezOHq30tkO2HQr
Elc7J8PnoNUv+I/hT0Pk5iApkPYJTjihdgdrMf2EDJnn4x9SfVPB6+uOejZf
zdKSJgk4gn93UZOEbQQF6dnwaG/vIAjasPnhJZiOsP9BMNiiF5ZUC4WqhWqg
bgImiTFoFcrlCNE3TuIpfICRQJrCScZzCOSqr/Bcd5R6+n4M2AeSV8DfjC6W
gVGmwGgFIytWV/hjGAe8a8AVwglQQA4bliE5XhqrA16EEZZodIKdqDMYHFhy
pgzKLUwqixZADsHVKpogKyEpg9yVdEE00YyBPl3FY9EYL5NVrmbJDfITMpwJ
UIEZQM3g+IK5OAH44IlLFF/0hAWW1hHjj7AmsxaA8TSHKeMMAIP52SSHZQWX
CaAZLLOruW4T0pg0ECkZy4Csw9u2iCYTWE3wlTpFe3eyIpB/g00MLMLu2MQP
H34HhLTf6x18+qSQtURT5CchYzEI4aNFJU89TVYpjLBc5cR2Mj1OdY5obIGO
DlvSUst5iDO8z1sqdHBO0KZrAMZvZtF4VvcsavbF54mIElp3OJ/fqkut/qbT
pD0HUZ3PmgqdNLOQyANwh6ulU4vjKdh0gFHsBaXTFChlDGwBNntCbALoLluN
kYRh89U0jOarVKMuoP1hgArz2yXyVZifDQwATohd87boSWDXAYIt18ZModPv
sSUgJtj5C89kIVrFN9NpCOQ8SeBdMHUUbN04jS6RTJEAmbjwzIWAO3rJ7TW9
ZF+YW/uQyRE3qqUuV7mcMtAB8dQATRKaYYeBdUTAOsw2gwThMVqInxk+gWtd
hO+jxWqhGPeIATM2byiOO9GwkAUY5BNAQ4BvuTNtcAanS6fzW5JguA7PaIP1
gdoCdltorHDiKKJJBPI3rx4Jk88YcRvYphVuzMIIjDxaIJNhbMr5FfYUIEdO
Vlczhe62HBkM7MrT6RQF69piEGnvEg3p6XwFG01rojHi1eISeAWA84BYzwP4
GIQyCQDTgdNMD+ZoggpK5eS38AfAFBqvMYOezQB1MLjObzRCeZMEy1DY4CC+
9TZ02zYgDWvHJRLjhsqCELSpW2RedFQczpjUDTv7OlNXCcCJ9J4wZ3aYb5S5
SJI6JtLkjcKxmX+MefQfkxsNGkoLOf2SlRMtyw+QWJJpDssF0+NWyXqZwaBu
utSooBJbAQKzm5qhvEGeXoMsZiB6bcbEV5kmcFSyTWXtMoqarDSuNdXwKPxC
ZkAW+MxaVFi7dwxyqqfATlg/NYfDqfnysBgAQTgOJ3oBOAG84ZYAj2l5UsMT
KLADTuL40jFzqnSAK+NzkGm3zhbw6BQxiwx0tRCRakeGB2/VLFwjfwGiy5IF
Yn8K2psO0KOoGgsdZity+eG5YXaBB2ehQZmDHYaVzvR8KXQh0wJ54ikElRRW
3xKBYdUIIVucmvdT0ZGmWRXNGoqcdecJ1+IIJzDHFkgr9ISoXZbllqzkEVw+
DQJJAH9f5uElCFlP9SCYIjjvwPbTZMEzGG7DctsT1sKxHZTMWiw5obNUgKcl
kWQz3IOZEhlH4TyDg6WDFGwyBAWRarYWOB9o7bwzFoUeA0bcvh08PX/b6x+9
RWU+SQP7XX//4C2Z4jnqTKzhwIceQbPKDDWQZlYP7CzMAvQnJytSGDL9jjge
G/GkzmxVIx7DOnTw4UPV7Pn0qSPWUDvVqHHBT6B74+rdMgHkax2Ul/j2/PSP
hMU8mePBAcTw2lBoLdCnjutg+GnsTlDUGafwIdMuZJONZxo3LoXVsXsbXgaw
lpqVARoKNbNTQt9Vkkws36IDEK596YoKJR1AJoeC7tsAtAmmgwKmmyQmkSgA
L+IQMOtSl2QLw9BEBnwkkXSNECUGwKorkLEjDkeZ8GAOiEeSY7sIuaLFFWlU
IJPijPlXC6kIoQdYM5xaxzAjrQXOAxMRAEGyg4WIVUMI00zWjE7NzA4N97GV
3qSsR1OS9cSYSDZlQuz6fYi6fMs4wQhL/+PN6ZAoLuCDXBZ/bq2pHoPOLsDK
abPrbzm6D+qh4PfMICEvgHcwi/6miaRBOz7XrPrud/YR+wAq6MkIqPvpoHOA
8IAa/ajb7QHFgy4BlhEYlXLwPK3I0+bobBV0GFlEuE7gpJmTa6VT8Fo+0XPE
TETJR+ZIxEIGDQx7E6YTAvIS+CT90QAVK2+jqgX8LsqADi3ngXP7e7QlD/b2
YWlwznO0rGFMqyXByGt9yzgXEAzrLjALJDHiqnD6AtBHo6tYjWdJNCaD7idQ
hK3g81fWKktQ2fHzH1++OXtCGGF/ECB2uEpx9PktixvzKDM6RK1QI5nmtKsZ
kCOgn5kGzLrUYNWneh3pG1TbycsLRwlY0iRESrBWPusTCUlVwE+GDg/eR7Ov
QDpAP7kBAhBvtUCrBAA/nYHpAMoak5/iGWEaElzIEgknWY4sax5e6jmqcmh7
r5Hbwm8MSAqLgRPI55AEHZO1HDc5ByJpImTOgAswFmhaPgNCeCLPkHvHIvZ8
tskK4DiZz4nnzufKCizr5QKqZ6sazxdzJ8E/gmpO7LRkqJDNjwoIGEtjbblI
iJI2RUdBhpDKTrCWhYQF9kWJctjgKA6OQAM2GVli7MPfAa33K/Xap4sXSR6y
oY2IwKN3Q1zgwfM35xcPWvxf9eIlfX79FHjS66dP8PP5j4OzM/shkCeYUN0n
9+bw5fPnT1884ZfhW1X4KnjwfPDnBwzxg5evLk5fvhicPWDF0d8RYk4J2yJA
gUuwt8lwC4zNR7t9Mnz1f/6jtycWfb/XewTHmf846h3uwR+IR6HqGIiI/4Qd
vEW+rcOUAjiw3+NwGeXAYFpkHAIuQdjBVnSCb39Pylv74PffB4hUH48+wBM9
hedEFRHyjCgkl3v6yLsV0FREen8UAxeKZbQ26WsAL5yF5AZ276M6v11cJnOl
PsIZxCUzB/8YfGwftz/Cv/AI/MkUcUlheTGPGqhHAzE2WzXmJz/Jtj4Opq7N
GEgS5RHoidQ8wXpH7TM5PHMOIsTMWPUBlF44gxeeV8w6PLxGjKMNNZ6vSKKQ
OubcDbidAwCIhsQFyaAZDHoBGJ17z8rgss1GRai8+g5efbFFp2Bvk29tRvE6
ET7EQ6wLQ1iF3fPiahDDMBK6XWBoGnCi6wZUD1WPB13CoG+WyGvYR4dcSHzg
xihAaC/Dy4h0VHwngXdeitHhHvaNHj49Tq/wloW49YACOYfOdgZmVVghGZuN
ip+PDho/f+JtspuM0e78SOhiEOtq+3DD+w0HKoYs4N5jfzhWXxWPIjvjv3tg
jvuDT3T6bYTnCR73iJ0NAWl2VSdVS91o4QssO2dJpuO2o82ygdE4ffGkPXw1
4GQZ55ALrNWBj1y0hxd/umh6hjOpLCgis5IP17O00d4p+58DkubZMonplI3n
oCpSNMVa31YLR8WNxjaLQz+NEnjtJAGqaUgytx70bFGFKRz+FAnRrj+TMXhB
DlLS9SbGizS/DXhE915pQG+qjnqepDohF0wJ+cniEtXRICw4mX3Kd67vVQgW
Q6615T1bTcHABGYQbnanOYf5udjmuJDjIGirYXkoO21jOGgek4PKP9HIS9w2
BuS+ZT27tJt2N8qeq2aNR9KzDjvBaUn6tkSFNyTOcYZNYBvqizKjGlnY2Y3h
EaE4n6cr9CxPQAME2FdRNhNjsuLKzoIqvMZ/oc0zhCJQFjHibh33GG3ACIOc
Gw/Lp3djWTksB1UsC702PG/gdgSrCoKDKoKjGliLqFXbUBtEGPWZk9ZEIgdQ
4qGTHr+JQASibUEeInaEr2E7J4SsjdEXD3ewqs3II9IPanBYodTCGWx7Z7CC
x2A7HmsIddP5Dr4IrVsoNqin2BoCuB/FBuhg/nWb+KNGT+uNtpaDH3y81LcJ
Cne3BtwO0g1v5/hxmaLuCnuYWYAjoKuJRhd5jEbKGJ0rU9+PEbL8FYWSXrML
g51crFh8qsar168cMM2A/ADLTK8mSQkNZpA8XQHGyz/COM+8cWDN5+SzKOTb
ffrUoq8GT0CjNpKLzLi5Ryy8C2hmmrS7wLjYN3LSVu3xbwUU+tokWKw0hePT
7JD9dQ8hlK0uMyByMYXFT4LG4Jr3nOU3CjXje2qxrBoOONlsAOLm73//ewB/
f/sdkmNwaj/B//Aj/PQQHqTHCC7EmYurTWrsMiA+MuBpw0mjGEuu7yKZ6FZw
Q6Ge0t6i3k9p3kjgf3r5WgIUnpqeJyag6RE8Oj9KYofItbiJ5K2Ao2G3rRUY
LyF9AYv0OAQf8DlYWVmNvCa33yRc4pd43lmP9DWMVsCe/UwBinKJkSboeEAf
EjM7E2kOBsbSKqEJt5NidEbRKIvXIPIFgkT0FoisEJWYjlifRqlRaZRdI+yD
p47aokwsKLOPZU4Jm437hX6FS85fIxYFyhN5QHBIa8gYXyQSSNnpPNESIyaf
PcKdOCLkqCWmapp4CijfLmLhPJ3WjYaxZ+b/5F4BLHqLMsgvYPxuFY1PqPOu
CTJCsAjQBR2xSmnMAnH5ksY/DOdjDBvj91LoEAycyxd9XQksnZmlQr8BB2Z4
RMBHJ6D4te8mFocdE6CX14sunIgcZC4bAbBmfanqBonXj46zNLjWekmoz1ZT
QGpE3kKVAbubwyJeotUOw62KZiRtVeY7ahtJaggB04nsDmYaE4tzOBBNVFzq
vB4hnl5KK5iS+eU7DVPtiMqGaG3AvVYnZmdxY3gmyoaz9qw9jqjzUIr8Udho
oGCHAQxKYbEahzOat6iys+jKMpPhoKRCClCnVaB8W6cGLuEiANcqLqgTW8GM
azVCD0IY73RQo7l50kRAHjw1MFuGUYtRLCK596pkGs/crq4Hxius6B5iz98C
Oj0BBVwpdwSIBpQC0jpA41lpc8SMdMRAOJrBwN15Bp8RBZcYD55bVPMxNR7Z
DBZn5YJRGZCtGQUGQztyDkyqSDA847HPOsXgDvvDDZAjEbb9X9oH3RE5g9H/
y3wjGJ3aH3sjGm409L5BBYcCpD7LYY+3YTwJcVSPfXr8x66+E1TCTxk+BA+Q
y1H1v81Wy+8Bwm938IM5+4Uf9w/5x0DESTVuXB9CUhRCgqVQPMTEL4BS9Psl
sMGMFZrw8445RgyE8CQK7Niqi7s5nz2FuMoEj86hkkfAeR44eNgYDJ40gUzO
XIYMKsM6nBDJ2RUgToDrWYvV81BhdhQGHsVXRX7ZojcTCAIGG1BeFOxoHiLj
vkhMVIMCmCKEjI4qy2hzBJUiXzDPDk0hXxo6DW3yk1CybAHHPFlHQPybPBsZ
mjHWGJ2Nmjb4RTJJospfF/3O4t+FF2J4AfZDQnWorQzmc3/fbdSXDiJ5bKt7
31I6Et3Ow2ZQ55sdvYMZk9KTNZ7X0XrUfCyhFOf7Qhlrj7IygXxUAAHyMwc1
UonVwMVCwhMoMpO9/KFNzDAqpWdelk6h8Il6Tg8LQN7wnVqrb1Tj6EztAEvo
dQ+azCXCgOdBPMi2lW3Wso3Owy1HraInD1aMmiVmQ4wpUyfq6E6rKI4KeTo2
BUVTyNfjpnriz4knQUBpWWJgohutkcU1lrA0XhSs7uhsxBb+Ko3lRFO4T4Lz
QemdXXznbGSM+KIr0wb9TBSfk4dMjh9FBlGBMTpcKPp5iYIshbHVkGqP+mAj
U/3v/Nk4AEuRb6F4JE/m7OtRgbyaoklbxsXxTDOpGAkelrccUD7LWcBOZoz/
fYU1BWkCb4h1y5NZhZO4JJ/7IivBt1BlZclS0IhPS4jLWSHVxHsYhRTmDp1R
ZmC1P8KH+YReCoMtCwL0o6gs6L+hl0ZwT67gp0pITJ1tzwLERg3gvC5KjobT
BDbwikAGrbVtQERVdgbcn0LGmLN1S0O1VJYQTDyERRovN7jEtV3F5Akm7Rzr
fQVDsR5TjQ5mRA3GEv/G/KBCukAoQdHwWsfIsShlgmbkeVgpSMZwhsHGtLmG
oUtX4/NgUkOMTADIdZYjkXCCelHB13NMtiDBJqhMYsaLDmJ9NY+uIvRXOeZQ
TBgX38qavhdLHcfCjKNYvpATkbVKU4MmcU1IXsCSOesiXfNgkmHBEOkUKCAO
WMRPiHHiHsmiiCdXUvExE4kzAoUzFFQGOufwLYX/2UXIGQw0H0FJ0TT4r5Fk
kt9j3GQtOWaaRzN5CxyQMoJC0mAKtC84RrbLZi3qBMg7rL4A9jBmEBPHMlsB
IjhDVHESTGW1dF7KVo/Nd06CgnLJDpyBZCmnUSZ5f5Z4yUmbpEaXsOeNCRDs
wQnthSMqx/opoJ/N8UE4AkSlhX0tHgfae42iVLIiMVm3Uw68GzaWu/qGuhw3
ivhS2iya8ykl7re9xPqAH2sSJ9Dkpcl4IwBw9mnB/5Afg4BbAa+PvNoPjozj
NlHmm6S7AfyGL3nquVNvMsfa0Cc7FiPHIFbgFneocR+B1gvUFMES4CSZOh2k
xCxPE6CnW9SPk1UKU2C+3em0RoUuup5IuMpk5E6gRRL60NKiX9qLKCumMkoq
0rU2pZ1tzF388OH38J/vqE5nv//pE0okfIiTsZEFo/6K6+AjzD6Wc7YjsCLO
ayihPnyVraRvxCfZ9UzsCtjyRZjCgTHCf4vvx+hnXpoOngfc4TQup+sEK9Hl
T59ePKM8gGScYFqITUY4riam+gUlLfez5KgWfy7mfA7r3x7+OIB/+923r16e
/ZlKKyWpZW/3UWEKGePtkTxwcLC/j5bWxcx6iAxLN6izqfE2KyXTNk+UJKOf
oPc48BxjhjnY3HRKAeAiiOU8uUUfUiE6QFlMNoGOc9IDcsDEAg08TQ8xMHZg
90Qh790kzTdbTvBlQXmFJpPJ5CJzarcx2lhnh3c+fFhY8vrECWJZMRM5xOIa
yqxE35UEk8NSHswoZWXl0QGZPyJZglKcgdFczg0jfwNRI4tCf2RXwBJYWVLr
jp9G71kZ8sGC/R2loO0/OgClWr0h7HpzBDKHzWdF/QCHd3yKT83jYrjnwwfb
TANrp2boLSH+YWTaGk4lRrCEqwpQ7KfhCnBRsXAyEKKZq3WRGSVVzxlk5EXJ
vBq1ssFYyl4xZp+krhTUb9C4B3Ngk6QoUMqGE5I0D0XPKNHU5OLyzlnYUK82
yTU/oRLw4StJ8G+jTgCM6tx5RezG+WmiJibAIsYvtAJUgURHD5OYxha4oBKX
5I1DuwNdrFzZI3ILi6D0fMqSDElaoAhYVBotppAXZuIU5HHhkB9G7GDfXr1+
xiGoG82amJF6ga8zUbKcUidAsdoYtaVRrBbOS5hYuPX7WQgSFYPH7EqifjwN
Ub1cXlpLja7hrEm2qXV1I0WBwOM89oGHIjGJbESVmZT/pinNsCMAsSQwBUAK
XGWc6tB69utsar9qh2KJtxKyUGjHalN/dQmqUDAOMVHTy3w2Ugk1i/lNeJvZ
TP88KRh7pkgjJ/cUHwP01VLUTnyLCXkHrk0gL+KSBqClKJY0fXPICvbQeBZp
cmYklhyNQUfRA0AigBqgZgrsiBfLeVMcivApQMZchJicTU43zwhwG1RwgETF
rAu2DC9FG2dMUAWC2FWyRxgr1CmaL5hESTErKmQFRPV/Oeoip/FqwVqFKa44
0Tuuy50DM1IcnXtH7OikI2RTjMEgWbDKE+WesxFMuVwqcZeoi1tAWwEycFeL
YB7gZY6TLBe9HbXeHkwyn1Mnm3PyAmJRf4enp0eRJimHFRRSDJOiaiqVS9nq
6kpTVF/ZwiE4QVdY6VewAyKuO5nfBrz1dDIkJ98PHS2SHPsSaGdMCOerqD6U
illSeDYwcF8IsM7AnjQSxabvD2o30wTFIq6mIG6YC1nNb2JyZZ+RMyDigiHg
ETGIPQBvpBrssDwvuCnZlTnKzUM0BScMODXMZZoYUiUyE5k2yqzXKePzWTHS
vPxS/B1mMim5YSm8XlgiuW2+qoTDSB/msCMx62GSYqo6yLhdNg/KeDIFcbR4
jUeIN742N4PX5pAuHIZ8JRie+/Z37TZV5fvTliFn9pQx0ngE3G/ca9EpqxM/
5p5exO24PLSQ+KcKKSPkNzDmuE2YR6Y1V40xCLtCmd0kysYrqngEid9uf+9n
QjQamF/7jnJsf+k32a/af+TxTud29PHixV0lswLHyHDI5S+N3g4MhZ7JBoyF
n9uqx0P+hO7mlhyzoqvN2BeMoxGN9Q5GORsRb7wxnFAcHehsCpZ4HkmukcNg
dDbaTGy2RtxqyxZycqXWg40oaZwRfngFSJMuDlqmxqfvVpLj04f36+gRVT3y
uZNO48qRgOGOzF6s1bcAxcHeqFiRxR7Vee5V5IsBa9JFJMwWGG5H3LTfUvck
6iL0FbJ20ZE7SLNFo/EyYd8SdMkRWd+XOCUOiM5+8vjzBhjyPOKdeGbScH0k
qioSWyq55AIT57KSxbO9NVqq7xXHFA52Rx2zD0J/MjmxOVFOSB8ouPNGvF2+
H8SXNEHoOtrU2ejstYQFgHpunDoFenWb51MuBQGAuTVw9pYNB/QPPaoVsqU9
fpHkggQRQxh7M1oQKjpr8uOyjx3HJNnEdm4ZSRe2olRCuxbedwoDtru7eHZ/
abTpVAmvAqYj0YgzQidoEyjO4ek+OgNZT1tJdhvC9TUvXyo12O3TbAVokhT3
6CGc1BurMtlx9x6ZCJcU81/FCegMQYM+mPD3wx65hrk+l9OWPB+fIUwr8yse
CakjijHjReLAVMgmpqRE5utdGTWtpj59woJ7qi0zEC7TCA3jWBueUtPp8NMn
tgcy8pBJbsPgKWPcJDfdaBe6p+Sk7e4i8ZuwdqGMdhF42sV+ry/ahe2YWFAx
0FBBgtg/GLWK6sZj5esRZ1/XKBJBVZGwDbZqmTxH3Gtx2vEY3Wm8CYUtdfY1
wvERZv8IJPbRzo5/9Rhm+CANHGi0QuQXPY5kFxSAzRFAU2QDkOBrzzbsJAKL
1ioQ6kLtdXqmd5CYN2A9th1vAVgoKNr/pb9PB+Hrhz3mk7kwYTy8gnLu+ACH
kCqxTOUfrYTDgqqQUUoDNPx4XmmLjRhqUicAEx5AcUGJDm4JLBDw11myFJ2I
+ou+3eW5vR4V2i+5SdJwPNcdev084QwNytytAIvL6HYQAZzsV4/7TpPP8hbN
0ilH3Xo1iNWz2PQSKgHkNWso+xUM9oIi9joblAonCEUIfu1Lwe7unUpaRVQU
48VmQB6nYtEM7zBeSp5b34oRHvU7bBQ3eDE4+/P56fl3T16ednpd+Ld7uLPb
3t/rtncP9h7124dvD4HhkTkj7YdsiiYWg7cxPWcB9EGdMEwBCREHFy5L0bUq
BnQpb9A6yALnINtU/+eMZHaP4Eqogw4RK/O+oW2yIOMVGNaxbxeZ2r9SPyOr
nLZU9WG/69CG57injmWI3mPL+SpTPY4l1pCBiShGmfICcBigFPGNMNxQp4MK
XEbLtpMFnBUx6p9hDF/Cg4wK7broiJ+qUFy3AeUtLgIw0T+0AEBDkCMrSWmF
cmc/3EjzsooXurRm6QVWCOcZjsd9h8IULAjmPqLROfdEpQ9VsliG0vLFy8ku
prpR7wIsLevhY7uehBpgonBJ/HzG6WhZXtp7KNo8p1fhYPO3T+Ewz98+c00M
WH4WcF3EA7pLcMGet3iHBjP+YvTC2s5OW7JBzBqJdI4Vh/4Yro+Lj6qB8eyO
+jj+2DSFx2NtTreVlNaa+eulzkORjj9pF51nQ/pWTRLsO2tyFh1lGlJjxzuR
pYlwJNyFb4RWJKxmLiqgGWSVrcjfLPvvjBqT2VBDDCyNfqTS9BFiH7SbM2Cs
xrOOWyFfrUeyGuSj4uQU3yVvFqVM+QLkVUWAWKcN76Qoo7/K0bPdteJ5B3hd
zV/6JHO412Pla2uQ3VMUkdaevUvzxpLN7YNdzF7aYl47Sbhm1QbkFgMBkhHM
gGYZwrUBbNODnwvzum4gdHaIxSWjnVKXKckTErtpPUKfP8ZdkIv5nsU55om1
6AkUKS6DxOM2wag87UiyayJxMIllU+DqHtR3YLsmfMpS30rSqMKssAMK2krG
iM4TnxQlUCeu2QnWuwdOnoBNSYmR41kYXwnKS+YGMp+xSdA0xVvhJWUgfiEl
wKz3IgQvHkfgGzbh7HPYKyyjVtNwnCfsZic3+cGeeMkN5r/ZOG2VbKxd3nKt
dnIHT4vCvWDOvVvhQY105vW7ISS32GmG8dFplGL1rfM3uIwxAJ6Eh8S9bV8o
PSb+k1C+ClLqcWkRHsSHwbb1HHq4tKlz1jFAjngTS/F0SUQqeaqmfFAw9WsO
QMchF1FyCjurZpohJQeX8//j6UIMYKSlmFomkSuSC8SNkea9HIunLLwz3gQu
DHAsQES7MYOXK+rBYruVRHNQunKXpZLPbGvFTNJ0SvF4ssBuTfcX8ndEOcZB
TE6/aWz6WNLpPLkdoGqB+ke5yMZzvkm6O1XJmbJHfpADfqaZqhSWuuowP/Eq
I3Nuwe1nsDYhTIGY0pa6T/pD4NIfSml7dQkNLaXzcUdSGATblTSNoJzE8Jib
w7g0hmRzJsMgtrtoPczlmoEwWhS6MVG82tX82NhpHrBbSSoAujYw1mAx4idV
uS44nrcTPYUJFzQ0rmGA5gh2gFwWhbj5p06TspUo8mlSyvR75pkTz9Dm5VDY
VFxeYSCKLwrRNAbl6PnFG1JiUvL69va7XZOEz6zAKx9B/znjBgWKxkpEiQIe
2qV++KDfc1uIdrayeQ9eLpGf4Ov1JLrUko4rZYucSoCchxNDqM8LKebVf1yr
i3fVr9byRfDxuF3/z8fKN8flr44/yuyFgJ6ZinGw2+/sS0HIxxLXV4XXTa7T
F7xe9RB+VPFOWEYHv753UDe7MchLs5talpqv6l5/e1R6vbNXAr63a1/HliEe
VZh+IcJb/UPFdMKVMWTBTqlTXhouUEqhrAqjeYYNRjagw/Y1tv4XPFNAcgVr
0GZZet5YmzkkSTUuexpflyaBRZeGH891eCG5zLqNdBANg1izsBV5hDBYsxqH
R7c6hXL4SABT2Vw4IInwJpeTpL6XZ1o9ZXX+mE4ltw4gx3gjFXDUiGKCFAaT
JZFiMIMZ8aiGV8Z97EaQ2rQCFk2Blk0VVDE2PCULix8kppConmteeDF8JQFA
SpeKuSHAxdm5WJ8Bay/or7bdX5PY9xHazs3IMkWZ9tJHYC5EFmtMNpOFfhLa
7gkh22aXuPlU/Y36QvCVXGtQTclceCmZ4nap9NVpcWoVxQPsrrpsDip4cZkz
mMuyAvUFlAhpscBJzRNuZ4oaztXMZMNi5dwlStg2JWqG4zTJMumGTvog9pEM
SI1g+9avviFNpz6RRxIdOLnFywvHbpdBuTuvUUWloTW36UZR4/ol15fgBG6W
QhdEUROiun7LNKFJR//wwV1Pw0kLfH8Jiv3BJT2CaWTYLc3bFrbCxRu20KHk
BNUkikelHQ28pn7CZLBhe03jWL/pUG2L2988gzdwYUcvo1KMN5c57DpAVOhU
YgNnwW+VafiOvl5Xswzvl1t4/wSb4aZNrjLGTYMAE4ajJrwvcIELl9uB9+Ig
kRmPGBUlOD5Hx0160fq33bQo49t2OP3wwTUQJW9h0YXNLUvIilhR7jl5y/wu
EUEoDfdbJocEFMcMS3eth4lWXQOKugF6MG2iI759aRJEtZEwiZe9FnPYz1ai
lfLALVZ36ciT92Ec5YY38cL2+0dHuFwwC8bhMqdma3jxiyB4fyOCbTzIodgK
DMJlPzAz7B0UUWchcUEu7VBpc2+ECrEAlGseQvQjhkAFGIs2TUWn0XtMTeHc
P+NBLKWisOlSnDQoTGoUX8kLLpZkSLMA3sHivufU1iTGWty4YGSa9G/jHLcm
timHEM7AqjYaBoGnaWNHZpMIUK7+Y9+5tTBLC8OOuYS+gIWX0QLGdK+P68eM
3UMjltVUnynVIsYklSxLXF59Yn7nsx2cLefdlDCzZHxzxNZr6AhDUkQaH8XW
OzY8/RnsolQXS17LjS2jbJ880htYbbgaL9qh/uTFBJ7ZXCE+CV74dPfxxjPd
+NML6egMGoMJLJ/p3MSM8V6Zr8pdAXeAebGnUFpRHMNzf82iq0WI3l1KnkFf
4Zk3CKan521M3FUqUQ3fqgXcv3u4bpkRyLp9tG/fJevYMVSbK/pO7OBeWzdT
9Zg3+zbSc2DcWn3/nep2ur3uXkvN0NPuDTfBzWvt72jV7uEYvb1dHuqo07Sx
A9RKvPiB9tHpyWdJhcrE55P5eGOH0BmyBM63y7APwd7RY4aIUpxdGZ+0Kdjv
Fn25HW/Anhmp0ens9H+5bgLeTfstXgA61hJ0rD1E9xojtCnpzJ4B6L1Ejzfg
+eY3Z/xk47p91PSevpCwn+dfRmoSqu94Tz6Tr4H0W9L+23spmqqkZaZieA+7
5dcT8wOdmxPcRliWGQ0JNw5zp9n1UbcAjDz2V1fmr9TQlzCemLt7DCb96UH5
PyEXO4dysP7MrIUcHUKe1r9huxpzr4/C9NJ1UcXf8Fs77Kx1W2kAl62Mm8fe
EPzON43+CezNOIb/6zfxIQDH/IS/PDps7rDT1L06cNc3wMoBf9+rXrcrrd0I
e7GjRhnspDRKW+2mBej6MVIa02fvAEarJ8899CC7txrXD+NmiUQbPOUvfVxT
QrTARAeU5K1COnbsbZpp384E07TTnT7N8x0fLxcwM4+12Ha2aMlnfnMYpCtP
nDZ8bcIMJSe/D6wKtSCj/ajN2o9967CD0VwBHgBs/JVTML9RadOETEVpkV/E
IBKhD9PJ95jQSB2BKDHxESNkkJm/nUcgpBg6L/MS4Cy3+hbjhULXWIXCigKO
ZhHrndsG7vqjvgRgpasLViDTNRE5xxNf3anJirlqQiHT40LNhbCFb04kqHL4
mRFBStf04gicv/iNOmn6EQVb3YpdE07I0CdHBgXSJNsVjstj47H1bW9gINym
LSgGCKjwlt88MK5Rc1kCaEovkcHfRFivgjNmM5Nj6BwJwMt6Bz2ywmq1B/j9
0WFRuRA9Qgqly28Ruyxc6KKzYGRZKya0GqiwxYaXC25rP0aJbER3hAFn0BQN
86WrBO6jd+wbvUOUfKM4mxLi4T9J8xC17TXdP8AgFI0NAvAYHvgOVfeGqy2w
96v2d8QW+XKF5vAQU+EyMgWM9GnW6Tj7vo7zGgUgAPWXDBCf4cJ/bhkZ2Yjb
/aYv+ET3mSg5Tq+RCb9u95rmC2TlB/fRcfbvrePcoZI03LyeatKE/xjJeId2
wnzB6iimxABkS/+gaTWXuVFcDr9McblwUUwyUxoPKuM+aG6OsVv2af/hICqP
ZVw4RuQ3N6pMN3yjCDWQgdkAldvXX5yTZYhRkbLCnKh8oU74vToBJovitvPf
yshnKSME+H20kcPXThnp90sqDKXelGTl3b4QW7ZXkn7GqR45u93c0rbB3isJ
3e3kReerIpitQNVC5WYDi6q+tYrFMKsX4i7pJLAdDLdqBXdL+mfGJBdT3tAg
yz96H4t8pC2T0QYrN4Jl6KMOSLhz5HUW8q0Hc30VcTMOF0Bll3meXGmUq4WC
evRd+CUy5+4yISGhJfL4L9wKTotOAjPUTp8HuwfXGLx4Unqrgmy+f5Zv1WQk
Mg4frukXljdmbmQvpUyhw4PKXPKU2b0Db/ds8c5d1Nnb39uED0seWNRSgqWl
6qZVLn15Y0LbvXwsbCtgo2G6SJfYHnX6waP4Kv3LSTh5e/gzoVP+Ovq55TBs
EmrKt/KEmejwjZh9bq57imJlSBJazeUSUjuFGa3Y0vWY92cwWf+CiQ0hkPNO
go2XP719PRy8AVxZTub7D0QsK6oPKLHmwAiuorGO7oyTVsG8vofNvtFWp7KB
Ooud6OSiLszhp/JjH8FY+GkFBAp0EIAhdx4fPC01+LnbM19oCP3uV5gu25jZ
/dRsS3r/v1DeEE0bj/LelehO1DsivjL10fafs7ib3xZYbc3G3S1cmT/7Fa3v
iOW8q+HA78rc5os5TSVF9cLUhYzNDWWI54meiD/Yxe9KUSoVrkPAhWi39RZk
1W68YKI3+ZLuqklbuxAUWinyg6GRz675OS2JcqbEJf2JKWUq/ahy2zWhXBTW
2V4Rd4+oXDW7I0zNXdtou1kPTH9LmKrFwTiJpNzlxKCbJu8XjasPQXxWudum
kIRfKNLAyrfmvWrot5W+db4gCDEeL+uDEHd5xPq/LiAxOeYQdPi+U71VNb51
8S/26pVSG7yB2LF27CJ8bQOMLb78OnPpRT4IsBMpci3xzdEdU2AOsyuu5bvs
LjVHAVuKjXhitj5tulHd/atZKervBctNgBxOKjGglEvOUzT0SR73uj1vzKQF
lhd93z+gMlVxLnAIzYfjTrcAPPSZbgEwhNaNv1CaKrz18zeKSsZ20VTMPRPr
j1FoJ9nt7MmFjshBlqkeo5tKtIljLlZsuGpFxjyOadOx3bjI5XbXOBmnSGAe
RI1Ggu0NKSn+xq8ZSbyB1KYSuhorGmCciDDbKXo2njnnLfmCSLxyaUViMu1h
2L19V2tVgdVg1nf8/OUvTuPCIYw5D1Ng5gRdauJBv0Og45MenMBw/CHZPrJQ
+a+zZNvHKoCJ78p4imyXmt9EcYS3g0gGyBp5GKeb0CdgRAZaSTsXnLS8wWj9
swT9Wd4qiljqqJ9//sy4j0FNx98442CAjesnuNAYvrwub97Fph2x+izO781H
PXPdLMYhgbOs7SywoL383lPZzd8+1b6binwzWGmDPpD4Ya/OP7ZxGh/1J4x6
ZCPd/Sql+O1Lub3VZvAOHHg9BKuft/tNcZjs72114LW2j3xYGplRDEfztxn+
yB++EscpDspBE9f9noM5TixIWLoGcYW4yq8PrGwp/T3Nf4vCX5cLYpiWNbGM
1mhbzXi9Dchzjrmry9z6YYJyjlh913Hp8l7sduwap5fVHNaQAip14sIgpxHI
FTwTk1b3OW6AO7Wcu82y/YJZdvCfaJaxnFvIJS/uCnmCiG0gR+h3izIXdnSy
yrsThXkJsJ/kIUuXvcMv57gq4RFU64uZ71aO+DlMvo4lkvGHC+Uzsrvb8Yf8
yYofPBk4hOSY81U54hpHH8KZyfa0DQK4GY8bC07EO6/NGR7IrmpgLjw12Gh6
seQT9T0D5sBiy6ggZMPc9bbLC2CTNC92MKVjS7Tpp9tSWp2sAhfBpkqcFMD2
Sljs9W0uAg8k9p3qNjkzTdxG0p1NyBTb7HgDAqq+K68ObwhHcN/h9cNL6rbG
CGJtknPVs7wOp3NlG/mZjisMpGHlR7smr3AappJwnxkbBLmQN565GaPSkjrk
PjX/5RLlJ8pBrHi96qh+CyOWWkC8dQWZT5TavXIXvmxwz7H3wT5vKwCCe9jf
l3g9lvZAbSnq0UdJ6tj/FQbV8xYsICjQ2NelQqpRMqrJra5pfD96NwrqZEXR
Z+T5rpDVuY5JuIGnrttVy9obaSQdeZFTb2zKUytRTOOtzeZfx5hyqWRfR2Qu
0nGQeAzXbJjaX9NF3KtuSEPuTjmdopovTtd7BHIkNGXOS8Lpo3iXfJbE5Kay
vaOC0XJUobtQWnGPza1WNnE1tDcwYBHliNtEwYpGviuV3HGsraDIIPuX+eRd
7jfnD9viYPLdylHZr+UuRW4G0vXjQio68c5gdmtXCp9BdcFTlW5xrYmj5Ytc
a3cXJH1WBvyWuibrfAuKzjfJkpLain+yv217yq+LExrfWsuyBa/uHFN+bZPL
Rh1O6MYcegbbuNU+8vao2alRIgUtVe/YpC0eFuFhkbmMyfbhL+LqPzGFZssg
qPKhYnBsBnm7gmGG3suFVtqM5Vax5ZXsk+9ea7tShAm9gi1KkqvGo4Om+rvq
7fu+Ai6Mm4D+yT4xyh8+kHqTquPMxK8M66JsBNtF0G88BVtRk6xgrRnZHtSd
HeSe50u9ezvxOmnx755q7RD2jdkA13mAn/YUZdWYYNrMDmIhbmJYVCJ0wC2k
ZXHjun0g6uwPCTVGQRqroyPsWB8bTR24h0n/LzZmZG11uiV3sXGP7Mf/4ixH
k+AYseN3Q3aj5482lPod0No/N+eRgtemK4W/pSQJBr8mk0FVMxmCe2YybJT5
WEQitwY0bKWhvXyx2hLa3Ci4SOQZyR+BYehcNe+TJ1HAWewwtikVQp4fFo5W
JfehMEijNuWBav3M6mxOkq+9NL2sCO51IIytVcqRqIR7h9WkDO/BRg66nUuP
2JwCA8NUXmOdB7UBV4T63z0r6npWfG6rB6cr4d2/ajho3b/fw//7vRkWd/Zm
8KwiKqulqyvsDL9lr4bqT+vSD5/Tu2FjD4fP6eVw8IiRtnPiQbfhp3v0dvii
4ep6PUhrha7r1lAazvZ8UHXQ1fd+sCAMN0M33DJcqRfEluFsTwgHXaE3xKLS
G8Kdwvu3hrgopoxU0+fLu1W9JIjOel2LBAlA3dl0gU1DrwAbz5G5OchGscjp
FtiyyGJpsFyfEN+vOpghLjhBvCYHXnVA5zdB0Cb8mLIEbgJgfKHGmS+umAaW
SnDrv9GQbwSCEdqXYKmXLRF5zP3trlAWf0J867krix0XOenUCPWaqyobeOsm
OvQQOT6zNK143cStYBsk3JjLtJWmkfrmjDbkhg9zaUXT1AsHXjuxAkZc27C+
wGOaXZh+y9iFotBIxzSr2OvLrHaN5moBfJQom4MydFcV75n0ADYdPdAyNlqy
zFeYwhxiuY/MJI4MTSc2Pg8fvgL1oD0ufCln093u49/5Q/LCtHrcfH3gagk0
JZoF3s2x+ZqeZUq7v+YkML5iRypqbEtODiQHy0yvJolUj9h2k41Xr5812SUo
DlOCkTo5oUIMk6yibMa5WXzzXJ6uAKjyQIncrxOqwkTe9Q4416tm7dCBP3TN
zRDIaVaZvYNWtCZ3o2AJQ4G1ICKxs+TGH6zkTjCcp250eB1jFCKiu4nqUAp7
/5zqWwsKoq5euuX4QOY0fv8unBahLmCaoHvN8JoK21vUdOAIc9t8z1SLr+KI
LN753KqUmISv8OLswFzY5sMit3/bi22lgtW7QRHUKVBVc01aD2k1hYubjOvb
Nvrw72qQo8IaEoX36GaUBd9Hk4nSFuC9jIr9tavSXZreKnFoM0tYc/mjOGHB
IAtMGIP2ku8fIPc8TEl92kKn9co1saQfF61pNgQDb9vw/jY++KHXKNljol6H
HZOyNNfsVKaWR9LVZbqa2+hCw9bdlaIPILn1pBqEoJ7FAHETKyE0upiFOmxf
Vrlygu92K79+w3dQy62RtsMfsiDU5k9Fo0dzXXzWvOxJzd1xeE2li396zYWp
MwhasYSN5CoNl0ASuI10NRcIpBX2tXD9MrErj3XJgLoD5GKH7eA1xLYPb3D+
48s3Z0+os51TGdwl2ghUGl1FE16HPB2OyYogMpYump1iFL9y3aFbpt9mvXCh
tdj4YFSgmo9tbWwArLrRLIWxu1Ch3Qy1qeGv+UAE5I9ys2xoN+SKd3n8yPU2
AqKPxhqbfwZ+kSct1PAm8kJYyAonApsCPX/W3Qelylw0lLH5aJsRelQVomYi
Bhz651EJJcHFnU+imA8qa6KYcAkk9mJQEozlK1mtH4fui0Oeigl8GMmEofF9
GAiMFiC48TUOORjjPRJwXK7w9Qz1Zz5IevLdg2k4z/QD7jZlHH12O1c5SHe+
04Nv6JWLwYjHGOrEq7e4DpaEY3zNTRuTG+42+wHwFc3A9D7ReLuR/oRF1PDl
xSxZYMgcvtWX4Wphvn8SxpGeqz904KcUuzFGsfnpfJzkuXo2X81SnZbGeQaW
J6DLfPuHf/zP9B//C8jmh2SN/aXsGH9IZjEYjXmeZUns5lxHE/V8/EOqb8x3
f07CtXoRled5laQxQ0T6LPwwmANpkFF7gdcig8IeXyfwAKlLMz2nNvOwVVXp
wne1doL/C9pDhw0auAAA

-->

</rfc>
