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


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

]>


<rfc ipr="trust200902" docName="draft-ietf-lamps-e2e-mail-guidance-05" category="info" submissionType="IETF">
  <front>
    <title>Guidance on End-to-End E-mail Security</title>

    <author initials="D. K." surname="Gillmor" fullname="Daniel Kahn Gillmor" role="editor">
      <organization abbrev="ACLU">American Civil Liberties Union</organization>
      <address>
        <postal>
          <street>125 Broad St.</street>
          <city>New York, NY</city>
          <code>10004</code>
          <country>USA</country>
        </postal>
        <email>dkg@fifthhorseman.net</email>
      </address>
    </author>

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

    <area>int</area>
    <workgroup>lamps</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>End-to-end cryptographic protections for e-mail messages can provide useful security.
However, the standards for providing cryptographic protection are extremely flexible.
That flexibility can trap users and cause surprising failures.
This document offers guidance for mail user agent implementers that need to compose or interpret e-mail messages with end-to-end cryptographic protection.
It provides a useful set of vocabulary as well as suggestions to avoid common failures.</t>



    </abstract>

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


  </front>

  <middle>


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

<t>E-mail end-to-end security using S/MIME (<xref target="RFC8551"/>) and PGP/MIME (<xref target="RFC3156"/>) cryptographic standards can provide integrity, authentication and confidentiality to MIME (<xref target="RFC4289"/>) e-mail messages.</t>

<t>However, there are many ways that a receiving mail user agent can misinterpret or accidentally break these security guarantees (e.g., <xref target="EFAIL"></xref>).</t>

<t>A mail user agent that interprets a message with end-to-end cryptographic protections needs to do so defensively, staying alert to different ways that these protections can be bypassed by mangling (either malicious or accidental) or a failed user experience.</t>

<t>A mail user agent that generates a message with end-to-end cryptographic protections should be aware of these defensive interpretation strategies, and should compose any new outbound message conservatively if they want the protections to remain intact.</t>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<section anchor="terminology"><name>Terminology</name>

<t>For the purposes of this document, we define the following concepts:</t>

<t><list style="symbols">
  <t><em>MUA</em> is short for Mail User Agent; an e-mail client.</t>
  <t><em>Protection</em> of message data refers to cryptographic encryption and/or signatures, providing confidentiality, authenticity, and/or integrity.</t>
  <t><em>Cryptographic Layer</em>, <em>Cryptographic Envelope</em>, <em>Cryptographic Payload</em>, and <em>Errant Cryptographic Layer</em> are defined in <xref target="cryptographic-structure"/></t>
  <t>A <em>well-formed</em> e-mail message with cryptographic protection has both a <em>Cryptographic Envelope</em> and a <em>Cryptographic Payload</em>.</t>
  <t><em>Structural Headers</em> are documented in <xref target="structural-headers"/>.</t>
  <t><em>User-Facing Headers</em> are documented in <xref target="user-facing-headers"/>.</t>
  <t><em>Main Body Part</em> is the part (or parts) that are typically rendered to the user as the message itself (not "as an attachment").  See <xref target="main-body-part"/>.</t>
</list></t>

<section anchor="structural-headers"><name>Structural Headers</name>

<t>A message header field named <spanx style="verb">MIME-Version</spanx>, or whose name begins with <spanx style="verb">Content-</spanx> is referred to in this document as a "structural" header.
This is a less-ambiguous name for what <xref target="RFC2045"/> calls "MIME Header Fields".</t>

<t>These headers indicate something about the specific MIME part they are attached to, and cannot be transferred or copied to other parts without endangering the readability of the message.</t>

<t>This includes:</t>

<t><list style="symbols">
  <t><spanx style="verb">MIME-Version</spanx></t>
  <t><spanx style="verb">Content-Type</spanx></t>
  <t><spanx style="verb">Content-Transfer-Encoding</spanx></t>
  <t><spanx style="verb">Content-Disposition</spanx></t>
</list></t>

</section>
<section anchor="user-facing-headers"><name>User-Facing Headers</name>

<t>Of all the headers that an e-mail message may contain, only a handful are typically presented directly to the user.
The user-facing headers are:</t>

<t><list style="symbols">
  <t><spanx style="verb">Subject</spanx></t>
  <t><spanx style="verb">From</spanx></t>
  <t><spanx style="verb">To</spanx></t>
  <t><spanx style="verb">Cc</spanx></t>
  <t><spanx style="verb">Date</spanx></t>
  <t><spanx style="verb">Reply-To</spanx></t>
  <t><spanx style="verb">Followup-To</spanx></t>
</list></t>

<t>The above is a complete list.  No other headers are considered "user-facing".</t>

<t>Other headers may affect the visible rendering of the message (e.g., <spanx style="verb">References</spanx> and <spanx style="verb">In-Reply-To</spanx> may affect the placement of a message in a threaded discussion), but they are not directly displayed to the user and so are not considered "user-facing".</t>

</section>
</section>
</section>
<section anchor="usability"><name>Usability</name>

<t>Any MUA that enables its user to transition from unprotected messages to messages with end-to-end cryptographic protection needs to consider how the user understands this transition.
That said, the primary goal of the user of an MUA is communication -- so interface elements that get in the way of communication should be avoided where possible.</t>

<t>Furthermore, it is likely is that the user will continue to encounter unprotected messages, and may need to send unprotected messages (for example, if a given recipient cannot handle cryptographic protections).
This means that the MUA needs to provide the user with some guidance, so that they understand what protections any given message or conversation has.
But the user should not be overwhelmed with choices or presented with unactionable information.</t>

<section anchor="simplicity"><name>Simplicity</name>

<t>The end user (the operator of the MUA) is unlikely to understand complex end-to-end cryptographic protections on any e-mail message, so keep it simple.</t>

<t>For clarity to the user, any cryptographic protections should apply to the message as a whole, not just to some subparts.</t>

<t>This is true for message composition: the standard message composition user interface of an MUA should offer minimal controls which indicate which types of protection to apply to the new message as a whole.</t>

<t>This is also true for message interpretation: the standard message rendering user interface of an MUA should offer a minimal, clear indicator about the end-to-end cryptographic status of the message as a whole.</t>

<t>See <xref target="types-of-protection"/> for more detail about mental models and cryptographic status.</t>

</section>
<section anchor="similar-ux"><name>E-mail Users Want a Familiar Experience</name>

<t>A person communicating over the Internet today often has many options for reaching their desired correspondent, including web-based bulletin boards, contact forms, and instant messaging services.</t>

<t>E-mail offers a few distinctions from these other systems, most notably features like:</t>

<t><list style="symbols">
  <t>Ubiquity: Most correspondents will have an e-mail address, while not everyone is present on every alternate messaging service,</t>
  <t>Federation: interaction between users on distinct domains who have not agreed on a common communications provider is still possible, and</t>
  <t>User Control: the user can interact with the e-mail system using a MUA of their choosing, including automation and other control over their preferred and/or customized workflow.</t>
</list></t>

<t>Other systems (like some popular instant messaging applications, such as WhatsApp and Signal Private Messenger) offer built-in end-to-end cryptographic protections by default, which are simpler for the user to understand.
("All the messages I see on Signal are confidential and integrity-protected" is a clean user story)</t>

<t>A user of e-mail is likely using e-mail instead of other systems because of the distinctions outlined above.
When adding end-to-end cryptographic protection to an e-mail endpoint, care should be taken not to negate any of the distinct features of e-mail as a whole.
If these features are violated to provide end-to-end crypto, the user may just as well choose one of the other systems that don't have the drawbacks that e-mail has.
Implmenters should try to provide end-to-end protections that retain the familiar experience of e-mail itself.</t>

<t>Furthermore, an e-mail user is likely to regularly interact with other e-mail correspondents who <em>cannot</em> handle or produce end-to-end cryptographic protections.
Care should be taken that enabling cryptography in a MUA does not inadvertently limit the ability of the user to interact with legacy correspondents.</t>

</section>
<section anchor="security-indicators"><name>Warning About Failure vs. Announcing Success</name>

<t>Moving the web from http to https offers useful historical similarities to adding end-to-end encryption to e-mail.</t>

<t>In particular, the indicators of what is "secure" vs. "insecure" for web browsers have changed over time.
For example, years ago the default experience was http, and https sites were flagged with "secure" indicators like a lock icon.
In 2018, some browsers reversed that process by downplaying https, and instead visibly marking http as "not secure" (see <xref target="chrome-indicators"></xref>).</t>

<t>By analogy, when the user of a MUA first enables end-to-end cryptographic protection, it's likely that they will want to see which messages <em>have</em> protection.
But a user whose e-mail communications are entirely end-to-end protected might instead want to know which messages do <em>not</em> have the expected protections.</t>

<t>Note also that some messages are expected to be confidential, but other messages are expected to be public -- the types of protection (see <xref target="types-of-protection"/>) that apply to each particular message will be different.
And the types of protection that are <em>expected</em> to be present in any context might differ (for example, by sender, by thread, or by date).</t>

<t>It is out of scope for this document to define expectations about protections for any given message, but an implementer who cares about usable experience should be deliberate and judicious about the expectations their interface assumes that the user has in a given context.</t>

</section>
</section>
<section anchor="types-of-protection"><name>Types of Protection</name>

<t>A given message might be:</t>

<t><list style="symbols">
  <t>signed,</t>
  <t>encrypted,</t>
  <t>both signed and encrypted, or</t>
  <t>none of the above.</t>
</list></t>

<t>Given that many e-mail messages offer no cryptographic protections, the user needs to be able to detect which protections are present for any given message.</t>

<section anchor="simple-mental-model"><name>Simplified Mental Model</name>

<t>To the extent that an e-mail message actually does have end-to-end cryptographic protections, those protections need to be visible and comprehensible to the end user.
If the user is unaware of the protections, then they do not extend all the way to the "end".</t>

<t>However, most users do not have (or want to have) a sophisticated mental model of what kinds of protections can be associated with a given message.
Even the four states above approach the limits of complexity for an interface for normal users.</t>

<t>While <xref target="no-encrypted-only"/> recommends avoiding deliberate creation of encrypted-only messages, some messages may end up in the encrypted-only state due to signature failure or certificate revocation.</t>

<t>A simple model for the user could be that a message is in one of three normal states:</t>

<t><list style="symbols">
  <t>Unprotected</t>
  <t>Verified (has a valid signature from the apparent sender of the message)</t>
  <t>Confidential (meaning, encrypted, with a valid signature from the apparent sender of the message)</t>
</list></t>

<t>And one error state:</t>

<t><list style="symbols">
  <t>Encrypted But Unverified (meaning, encrypted without a valid signature from the apparent sender of the message)</t>
</list></t>

<t>Note that this last state is not "Confidential" (a secret shared exclusively between the participants in the communication) because the recipient does not know for sure who sent it.</t>

<t>In an ecosystem where encrypted-only messages are never deliberately sent (see <xref target="no-encrypted-only"/>), representing an Encrypted But Unverified message as a type of user-visible error is not unreasonable.</t>

<t>Alternately, a MUA may prefer to represent the state of a Encrypted but Unverified message to the user as though it was Unprotected, since no verification is possible.
However the MUA represents the message to the user, though, it <bcp14>MUST NOT</bcp14> leak cleartext of an encrypted message (even an Encrypted but Unverified message) in subsequent replies (see <xref target="composing-reply"/>) or similar replications of the message.</t>

<t>Note that a cleartext message with an invalid signature <bcp14>SHOULD NOT</bcp14> be represented to the user as anything other than Unprotected (see <xref target="signature-failures"/>).</t>

<t>In a messy legacy ecosystem, a MUA may prefer instead to represent "Signed" and "Encrypted" as orthogonal states of any given message, at the cost of an increase in the complexity of the user's mental model.</t>

</section>
<section anchor="one-cryptographic-status-per-message"><name>One Cryptographic Status Per Message</name>

<t>Some MUAs may attempt to generate multiple copies of a given e-mail message, with different copies offering different types of protection (for example, opportunistically encrypting on a per-recipient basis).
A message resulting from this approach will have a cryptographic state that few users will understand.
Even if the sender understands the different statuses of the different copies, the recipients of the messages may not understand (each recipient might not even know about the other copies).
See for example the discussion in <xref target="mixed-recipients"/> for how this can go wrong.</t>

<t>For comprehensibility, a MUA <bcp14>SHOULD NOT</bcp14> create multiple copies of a given message that differ in the types of end-to-end cryptographic protections afforded.</t>

<t>For opportunistic cryptographic protections that are not surfaced to the user (that is, that are not end-to-end), other mechanisms like transport encryption (<xref target="RFC3207"/>) or domain-based signing (<xref target="RFC6376"/>) may be preferable.
These opportunistic protections are orthogonal to the end-to-end protections described in this document.</t>

<t>To the extent that opportunistic protections are made visible to the user for a given copy of a message, a reasonable MUA will distinguish that status from the message's end-to-end cryptographic status.
But the potential confusion caused by rendering this complex, hybrid state may not be worth the value of additional knowledge gained by the user.
The benefits of opportunistic protections accrue (or don't) even without visibility to the user.</t>

<t>The user needs a single clear, simple, and correct indication about the end-to-end cryptographic status of any given message.</t>

</section>
</section>
<section anchor="cryptographic-structure"><name>Cryptographic MIME Message Structure</name>

<t>Implementations use the structure of an e-mail message to establish (when sending) and understand (when receiving) the cryptographic status of the message.
This section establishes some conventions about how to think about message structure.</t>

<section anchor="cryptographic-layer"><name>Cryptographic Layers</name>

<t>"Cryptographic Layer" refers to a MIME substructure that supplies some cryptographic protections to an internal MIME subtree.
The internal subtree is known as the "protected part" though of course it may itself be a multipart object.</t>

<t>In the diagrams below, <u>↧</u> indicates "decrypts to", and <u>⇩</u> indicates "unwraps to".</t>

<section anchor="smime-cryptographic-layers"><name>S/MIME Cryptographic Layers</name>

<t>For S/MIME <xref target="RFC8551"></xref>, there are four forms of Cryptographic Layers: multipart/signed, PKCS#7 signed-data, PKCS7 enveloped-data, PKCS7 authEnveloped-data.</t>

<section anchor="smime-multipart-signed"><name>S/MIME Multipart Signed Cryptographic Layer</name>

<figure><artwork><![CDATA[
└┬╴multipart/signed; protocol="application/pkcs7-signature"
 ├─╴[protected part]
 └─╴application/pkcs7-signature
]]></artwork></figure>

<t>This MIME layer offers authentication and integrity.</t>

</section>
<section anchor="smime-pkcs7-signed-data"><name>S/MIME PKCS7 signed-data Cryptographic Layer</name>

<figure><artwork><![CDATA[
└─╴application/pkcs7-mime; smime-type="signed-data"
 ⇩ (unwraps to)
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers authentication and integrity.</t>

</section>
<section anchor="smime-pkcs7-enveloped-data"><name>S/MIME PKCS7 enveloped-data Cryptographic Layer</name>

<figure><artwork><![CDATA[
└─╴application/pkcs7-mime; smime-type="enveloped-data"
 ↧ (decrypts to)
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers confidentiality.</t>

</section>
<section anchor="smime-pkcs7-authenveloped-data"><name>S/MIME PKCS7 authEnveloped-data Cryptographic Layer</name>

<figure><artwork><![CDATA[
└─╴application/pkcs7-mime; smime-type="authEnveloped-data"
 ↧ (decrypts to)
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers confidentiality and integrity.</t>

<t>Note that <spanx style="verb">enveloped-data</spanx> (<xref target="smime-pkcs7-enveloped-data"/>) and <spanx style="verb">authEnveloped-data</spanx> (<xref target="smime-pkcs7-authenveloped-data"/>) have identical message structure and very similar semantics.
The only difference between the two is ciphertext malleability.</t>

<t>The examples in this document only include <spanx style="verb">enveloped-data</spanx>, but the implications for that layer apply to <spanx style="verb">authEnveloped-data</spanx> as well.</t>

</section>
<section anchor="pkcs7-compression-is-not-a-cryptographic-layer"><name>PKCS7 Compression is NOT a Cryptographic Layer</name>

<t>The Cryptographic Message Syntax (CMS) provides a MIME compression layer (<spanx style="verb">smime-type="compressed-data"</spanx>), as defined in <xref target="RFC3274"/>.
While the compression layer is technically a part of CMS, it is not considered a Cryptographic Layer for the purposes of this document.</t>

</section>
</section>
<section anchor="pgpmime-cryptographic-layers"><name>PGP/MIME Cryptographic Layers</name>

<t>For PGP/MIME <xref target="RFC3156"></xref> there are two forms of Cryptographic Layers, signing and encryption.</t>

<section anchor="pgpmime-multipart-signed"><name>PGP/MIME Signing Cryptographic Layer (multipart/signed)</name>

<figure><artwork><![CDATA[
└┬╴multipart/signed; protocol="application/pgp-signature"
 ├─╴[protected part]
 └─╴application/pgp-signature
]]></artwork></figure>

<t>This MIME layer offers authenticity and integrity.</t>

</section>
<section anchor="pgpmime-multipart-encrypted"><name>PGP/MIME Encryption Cryptographic Layer (multipart/encrypted)</name>

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
  ↧ (decrypts to)
  └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer can offer any of:</t>

<t><list style="symbols">
  <t>confidentiality (via a Symmetrically Encrypted Data Packet, see <xref section="5.7" sectionFormat="of" target="RFC4880"/>; a MUA <bcp14>MUST NOT</bcp14> generate this form due to ciphertext malleability)</t>
  <t>confidentiality and integrity (via a Symmetrically Encrypted Integrity Protected Data Packet (SEIPD), see <xref section="5.13" sectionFormat="of" target="RFC4880"/>), or</t>
  <t>confidentiality, integrity, and authenticity all together (by including an OpenPGP Signature Packet within the SEIPD).</t>
</list></t>

</section>
</section>
</section>
<section anchor="cryptographic-envelope"><name>Cryptographic Envelope</name>

<t>The Cryptographic Envelope is the largest contiguous set of Cryptographic Layers of an e-mail message starting with the outermost MIME type (that is, with the Content-Type of the message itself).</t>

<t>If the Content-Type of the message itself is not a Cryptographic Layer, then the message has no cryptographic envelope.</t>

<t>"Contiguous" in the definition above indicates that if a Cryptographic Layer is the protected part of another Cryptographic Layer, the layers together comprise a single Cryptographic Envelope.</t>

<t>Note that if a non-Cryptographic Layer intervenes, all Cryptographic Layers within the non-Cryptographic Layer <em>are not</em> part of the Cryptographic Envelope.
They are Errant Cryptographic Layers (see <xref target="errant-cryptographic-layers"/>).</t>

<t>Note also that the ordering of the Cryptographic Layers implies different cryptographic properties.
A signed-then-encrypted message is different than an encrypted-then-signed message.
See <xref target="sign-then-encrypt"/>.</t>

</section>
<section anchor="cryptographic-payload"><name>Cryptographic Payload</name>

<t>The Cryptographic Payload of a message is the first non-Cryptographic Layer -- the "protected part" -- within the Cryptographic Envelope.</t>

</section>
<section anchor="types-of-cryptographic-envelope"><name>Types of Cryptographic Envelope</name>

<section anchor="simple-cryptographic-envelopes"><name>Simple Cryptographic Envelopes</name>

<t>As described above, if the "protected part" identified in the section above is not itself a Cryptographic Layer, that part <em>is</em> the Cryptographic Payload.</t>

<t>If the application wants to generate a message that is both encrypted and signed, it <bcp14>MAY</bcp14> use the simple MIME structure from <xref target="pgpmime-multipart-encrypted"/> by ensuring that the <xref target="RFC4880"></xref> Encrypted Message within the <spanx style="verb">application/octet-stream</spanx> part contains an <xref target="RFC4880"></xref> Signed Message (the final option described in <xref target="pgpmime-multipart-encrypted"/>.</t>

</section>
<section anchor="multilayer-cryptographic-envelopes"><name>Multilayer Cryptographic Envelopes</name>

<t>It is possible to construct a Cryptographic Envelope consisting of multiple layers with either S/MIME or PGP/MIME , for example using the following structure:</t>

<figure><artwork><![CDATA[
A └─╴application/pkcs7-mime; smime-type="enveloped-data"
B  ↧ (decrypts to)
C  └─╴application/pkcs7-mime; smime-type="signed-data"
D   ⇩ (unwraps to)
E   └─╴[protected part]
]]></artwork></figure>

<t>When handling such a message, the properties of the Cryptographic Envelope are derived from the series <spanx style="verb">A</spanx>, <spanx style="verb">C</spanx>.</t>

<t>As noted in <xref target="simple-cryptographic-envelopes"/>, PGP/MIME applications also have a simpler MIME construction available with the same cryptographic properties.</t>

</section>
</section>
<section anchor="errant-cryptographic-layers"><name>Errant Crytptographic Layers</name>

<t>Due to confusion, malice, or well-intentioned tampering, a message may contain a Cryptographic Layer that is not part of the Cryptographic Envelope.
Such a layer is an Errant Cryptographic Layer.</t>

<t>An Errant Cryptographic Layer <bcp14>SHOULD NOT</bcp14> contribute to the message's overall cryptographic state.</t>

<t>Guidance for dealing with Errant Cryptographic Layers can be found in <xref target="errant-layers"/>.</t>

<section anchor="mailing-list-wrapping"><name>Mailing List Wrapping</name>

<t>Some mailing list software will re-wrap a well-formed signed message before re-sending to add a footer, resulting in the following structure seen by recipients of the e-mail:</t>

<figure><artwork><![CDATA[
H └┬╴multipart/mixed
I  ├┬╴multipart/signed
J  │├─╴text/plain
K  │└─╴application/pgp-signature
L  └─╴text/plain
]]></artwork></figure>

<t>In this message, <spanx style="verb">L</spanx> is the footer added by the mailing list.  <spanx style="verb">I</spanx> is now an Errant Cryptographic Layer.</t>

<t>Note that this message has no Cryptographic Envelope at all.</t>

<t>It is <bcp14>NOT RECOMMENDED</bcp14> to produce e-mail messages with this structure, because the data in part <spanx style="verb">L</spanx> may appear to the user as though it were part of <spanx style="verb">J</spanx>, though they have different cryptographic properties.
In particular, if the user believes that the message is signed, but cannot distinguish <spanx style="verb">L</spanx> from <spanx style="verb">J</spanx> then the author of <spanx style="verb">L</spanx> can effectively tamper with content of the signed message, breaking the user's expectation of integrity and authenticity.</t>

</section>
<section anchor="baroque-example"><name>A Baroque Example</name>

<t>Consider a message with the following overcomplicated structure:</t>

<figure><artwork><![CDATA[
M └┬╴multipart/encrypted
N  ├─╴application/pgp-encrypted
O  └─╴application/octet-stream
P   ↧ (decrypts to)
Q   └┬╴multipart/signed
R    ├┬╴multipart/mixed
S    │├┬╴multipart/signed
T    ││├─╴text/plain
U    ││└─╴application/pgp-signature
V    │└─╴text/plain
W    └─╴application/pgp-signature
]]></artwork></figure>

<t>The 3 Cryptographic Layers in such a message are rooted in parts <spanx style="verb">M</spanx>, <spanx style="verb">Q</spanx>, and <spanx style="verb">S</spanx>.
But the Cryptographic Envelope of the message consists only of the properties derived from the series <spanx style="verb">M</spanx>, <spanx style="verb">Q</spanx>.
The Cryptographic Payload of the message is part <spanx style="verb">R</spanx>.
Part <spanx style="verb">S</spanx> is an Errant Cryptographic Layer.</t>

<t>Note that this message has both a Cryptographic Envelope <em>and</em> an Errant Cryptographic Layer.</t>

<t>It is <bcp14>NOT RECOMMENDED</bcp14> to generate messages with such complicated structures.
Even if a receiving MUA can parse this structure properly, it is nearly impossible to render in a way that the user can reason about the cryptographic properties of part <spanx style="verb">T</spanx> compared to part <spanx style="verb">V</spanx>.</t>

</section>
</section>
</section>
<section anchor="message-composition"><name>Message Composition</name>

<t>This section describes the ideal composition of an e-mail message with end-to-end cryptographic protection.
A message composed with this form is most likely to achieve its end-to-end security goals.</t>

<section anchor="composition"><name>Message Composition Algorithm</name>

<t>This section roughly describes the steps that a MUA should use to compose a cryptographically-protected message that has a proper cryptographic envelope and payload.</t>

<t>The message composition algorithm takes three parameters:</t>

<t><list style="symbols">
  <t><spanx style="verb">origbody</spanx>: the traditional unprotected message body as a well-formed MIME tree (possibly just a single MIME leaf part).
As a well-formed MIME tree, <spanx style="verb">origbody</spanx> already has structural headers present (see <xref target="structural-headers"/>).</t>
  <t><spanx style="verb">origheaders</spanx>: the intended non-structural headers for the message, represented here as a list of <spanx style="verb">(h,v)</spanx> pairs, where <spanx style="verb">h</spanx> is a header field name and <spanx style="verb">v</spanx> is the associated value.</t>
  <t><spanx style="verb">crypto</spanx>: The series of cryptographic protections to apply (for example, "sign with the secret key corresponding to X.509 certificate X, then encrypt to X.509 certificates X and Y").
This is a routine that accepts a MIME tree as input (the Cryptographic Payload), wraps the input in the appropriate Cryptographic Envelope, and returns the resultant MIME tree as output.</t>
</list></t>

<t>The algorithm returns a MIME object that is ready to be injected into the mail system:</t>

<t><list style="symbols">
  <t>Apply <spanx style="verb">crypto</spanx> to <spanx style="verb">origbody</spanx>, yielding MIME tree <spanx style="verb">output</spanx></t>
  <t>For each header name and value <spanx style="verb">(h,v)</spanx> in <spanx style="verb">origheaders</spanx>:
  <list style="symbols">
      <t>Add header <spanx style="verb">h</spanx> of <spanx style="verb">output</spanx> with value <spanx style="verb">v</spanx></t>
    </list></t>
  <t>Return <spanx style="verb">output</spanx></t>
</list></t>

</section>
<section anchor="sign-then-encrypt"><name>Encryption Outside, Signature Inside</name>

<t>Users expect any message that is both signed and encrypted to be signed <em>inside</em> the encryption, and not the other way around.</t>

<t>Putting the signature inside the encryption has two advantages:</t>

<t><list style="symbols">
  <t>The details of the signature remain confidential, visible only to the parties capable of decryption.</t>
  <t>Any mail transport agent that modifies the message is unlikely to be able to accidentally break the signature.</t>
</list></t>

<t>A MUA <bcp14>SHOULD NOT</bcp14> generate an encrypted and signed message where the only signature is outside the encryption.</t>

</section>
<section anchor="no-encrypted-only"><name>Avoid Offering Encrypted-only Messages</name>

<t>When generating an e-mail, the user has options about what forms of end-to-end cryptographic protections to apply to it.</t>

<t>In some cases, offering any end-to-end cryptographic protection is harmful: it may confuse the recipient and offer no benefit.</t>

<t>In other cases, signing a message is useful (authenticity and integrity are desirable) but encryption is either impossible (for example, if the sender does not know how to encrypt to all recipients) or meaningless (for example, an e-mail message to a mailing list that is intended to be be published to a public archive).</t>

<t>In other cases, full end-to-end confidentiality, authenticity, and integrity are desirable.</t>

<t>It is unclear what the use case is for an e-mail message with end-to-end confidentiality but without authenticity or integrity.</t>

<t>A reasonable MUA will keep its message composition interface simple, so when presenting the user with a choice of cryptographic protection, it <bcp14>SHOULD</bcp14> offer no more than three choices:</t>

<t><list style="symbols">
  <t>no end-to-end cryptographic protection</t>
  <t>Verified (signed only)</t>
  <t>Confidential (signed and encrypted)</t>
</list></t>

<t>Note that these choices correspond to the simplified mental model in <xref target="simple-mental-model"/>.</t>

</section>
<section anchor="composing-reply"><name>Composing a Reply Message</name>

<t>When replying to a message, most MUAs compose an initial draft of the reply that contains quoted text from the original message.
A responsible MUA will take precautions to avoid leaking the cleartext of an encrypted message in such a reply.</t>

<t>If the original message was end-to-end encrypted, the replying MUA <bcp14>MUST</bcp14> either:</t>

<t><list style="symbols">
  <t>compose the reply with end-to-end encryption, or</t>
  <t>avoid including quoted text from the original message.</t>
</list></t>

<t>In general, MUAs <bcp14>SHOULD</bcp14> prefer the first option: to compose an encrypted reply.
This is what users expect.</t>

<t>However, in some circumstances, the replying MUA cannot compose an encrypted reply.
For example, the MUA might not have a valid, unexpired, encryption-capable certificate for all recipients.
This can also happen during composition when a user adds a new recipient into the reply, or manually toggles the cryptographic protections to remove encryption.</t>

<t>In this circumstance, the composing MUA <bcp14>SHOULD</bcp14> strip the quoted text from the original message.</t>

<t>Note additional nuance about replies to malformed messages that contain encryption in <xref target="reply-to-errant-encryption"/>.</t>

</section>
</section>
<section anchor="message-interpretation"><name>Message Interpretation</name>

<t>Despite the best efforts of well-intentioned senders to create e-mail messages with well-formed end-to-end cryptographic protection, receiving MUAs will inevitably encounter some messages with malformed end-to-end cryptographic protection.</t>

<t>This section offers guidance on dealing with both well-formed and malformed messages containing Cryptographic Layers.</t>

<section anchor="well-formed"><name>Rendering Well-formed Messages</name>

<t>A message is well-formed when it has a Cryptographic Envelope, a Cryptographic Payload, and no Errant Cryptographic Layers.
Rendering a well-formed message is straightforward.</t>

<t>The receiving MUA should evaluate and summarize the cryptographic properties of the Cryptographic Envelope, and display that status to the user in a secure, strictly-controlled part of the UI.
In particular, the part of the UI used to render the cryptographic summary of the message <bcp14>MUST NOT</bcp14> be spoofable, modifiable, or otherwise controllable by the received message itself.</t>

<t>Aside from this cryptographic summary, the message itself should be rendered as though the Cryptographic Payload is the body of the message.
The Cryptographic Layers themselves <bcp14>SHOULD</bcp14> not be rendered otherwise.</t>

</section>
<section anchor="errant-layers"><name>Errant Cryptographic Layers</name>

<t>If an incoming message has any Errant Cryptographic Layers, the interpreting MUA <bcp14>SHOULD</bcp14> ignore those layers when rendering the cryptographic summary of the message to the user.</t>

<section anchor="errant-signing-layer"><name>Errant Signing Layer</name>

<t>When rendering a message with an Errant Cryptographic Layer that provides authenticity and integrity (via signatures), the message should be rendered by replacing the Cryptographic layer with the part it encloses.</t>

<t>For example, a message with this structure:</t>

<figure><artwork><![CDATA[
A └┬╴multipart/mixed
B  ├╴text/plain
C  ├┬╴multipart/signed
D  │├─╴image/jpeg
E  │└─╴application/pgp-signature
F  └─╴text/plain
]]></artwork></figure>

<t>Should be rendered identically to this:</t>

<figure><artwork><![CDATA[
A └┬╴multipart/mixed
B  ├─╴text/plain
D  ├─╴image/jpeg
F  └─╴text/plain
]]></artwork></figure>

<t>In such a situation, an MUA <bcp14>SHOULD NOT</bcp14> indicate in the cryptographic summary that the message is signed.</t>

<section anchor="exception-mailing-list-footers"><name>Exception: Mailing List Footers</name>

<t>The use case described in <xref target="mailing-list-wrapping"/> is common enough in some contexts, that a MUA <bcp14>MAY</bcp14> decide to handle it as a special exception.</t>

<t>If the MUA determines that the message comes from a mailing list (for example, it has a <spanx style="verb">List-ID</spanx> header), and it has a structure that appends a footer to a signing-only Cryptographic Layer with a valid signature, such as:</t>

<figure><artwork><![CDATA[
H └┬╴multipart/mixed
I  ├┬╴multipart/signed
J  │├─╴[protected part, may be arbitrary MIME subtree]
K  │└─╴application/{pgp,pkcs7}-signature
L  └─╴[footer, typically text/plain]
]]></artwork></figure>

<t>or:</t>

<figure><artwork><![CDATA[
H └┬╴multipart/mixed
I  ├─╴application/pkcs7-mime; smime-type="signed-data"
   │⇩ (unwraps to)
J  │└─╴[protected part, may be an arbitrary MIME subtree]
L  └─╴[footer, typically text/plain]
]]></artwork></figure>

<t>Then, the MUA <bcp14>MAY</bcp14> indicate to the user that this is a signed message that has been wrapped by the mailing list.</t>

<t>In this case, the MUA <bcp14>MUST</bcp14> distinguish the footer (part <spanx style="verb">L</spanx>) from the protected part (part <spanx style="verb">J</spanx>) when rendering any information about the signature.</t>

<t>One way to do this is to offer the user two different views of the message: the "mailing list" view, which hides any cryptographic summary but shows the footer:</t>

<figure><artwork><![CDATA[
Cryptographic Protections: none
H └┬╴multipart/mixed
J  ├─╴[protected part, may be arbitrary MIME subtree]
L  └─╴[footer, typically text/plain]
]]></artwork></figure>

<t>or the "sender's view", which shows the cryptographic summary but hides the footer:</t>

<figure><artwork><![CDATA[
Cryptographic Protections: signed [details from part I]
J └─╴[protected part, may be arbitrary MIME subtree]
]]></artwork></figure>

</section>
</section>
<section anchor="errant-encryption-layer"><name>Errant Encryption Layer</name>

<t>An MUA may encounter a message with an Errant Cryptographic Layer that offers confidentiality (encryption), and the MUA is capable of decrypting it.</t>

<t>The user wants to be able to see the contents of any message that they receive, so an MUA in this situation <bcp14>SHOULD</bcp14> decrypt the part.</t>

<t>In this case, though, the MUA <bcp14>MUST NOT</bcp14> indicate in the message's cryptographic summary that the message itself was encrypted.
Such an indication could be taken to mean that other (non-encrypted) parts of the message arrived with cryptographic confidentiality.</t>

<t>Furthermore, when decrypting an Errant Cryptographic Layer, the MUA <bcp14>MUST</bcp14> treat the decrypted cleartext as a distinct MIME subtree, and not attempt to merge or splice it together with any other part of the message.
This offers protection against the direct exfiltration (also known as EFAIL-DE) attacks described in <xref target="EFAIL"></xref> and so-called <spanx style="verb">multipart/oracle</spanx> attacks described in <xref target="ORACLE"></xref>.</t>

<section anchor="reply-to-errant-encryption"><name>Replying to a Message with an Errant Encryption Layer</name>

<t>Note that there is an asymmetry here between rendering and replying to a message with an Errant Encryption Layer.</t>

<t>When rendering, the MUA does not indicate that the message was encrypted, even if some subpart of it was decrypted for rendering.</t>

<t>When composing a reply to a message that has any encryption layer, even an errant one, the reply message <bcp14>SHOULD</bcp14> be marked for encryption, as noted in {#composing-reply}.</t>

<t>When composing a reply to a message with an errant cryptographic layer, the MUA <bcp14>MUST NOT</bcp14> decrypt any errant cryptographic layers when generating quoted or attributed text.
This will typically mean either leaving the ciphertext itself in the generated reply message, or simply no generating any quoted or attributed text at all.
This offers protection against the reply-based attacks described in <xref target="EFAIL"></xref>.</t>

<t>In all circumstances, if the reply message cannot be encrypted (or if the user elects to not encrypt the reply), the composed reply <bcp14>MUST NOT</bcp14> include any material from the decrypted subpart.</t>

</section>
</section>
<section anchor="avoiding-non-mime-cryptographic-mechanisms"><name>Avoiding Non-MIME Cryptographic Mechanisms</name>

<t>In some cases, there may be a cryptographic signature or encryption that does not coincide with a MIME boundary.
For example so-called "PGP Inline" messages typically contain base64-encoded ("ASCII-armored", see <xref section="6" sectionFormat="of" target="RFC4880"/>) ciphertext, or within the content of a MIME part.</t>

<section anchor="do-not-validate-non-mime-signatures"><name>Do Not Validate Non-MIME Signatures</name>

<t>When encountering cryptographic signatures in these positions, a MUA <bcp14>MUST NOT</bcp14> attempt to validate any signature.
It is challenging to communicate to the user exactly which part of such a message is covered by the signature, so it is better to leave the message marked as unsigned.</t>

</section>
<section anchor="skip-or-isolate-non-mime-decryption-when-rendering"><name>Skip or Isolate Non-MIME Decryption When Rendering</name>

<t>When encountering what appears to be encrypted data not at a MIME boundary, the MUA <bcp14>MAY</bcp14> decline to decrypt the data at all.</t>

<t>During message rendering, if the MUA attempts decryption of such a non-MIME encrypted section of an e-mail, it <bcp14>MUST</bcp14> synthesize a separate MIME part to contain only the decrypted data, and not attempt to merge or splice that part together with any other part of the message.
Keeping such a section distinct and isolated from any other part of the message offers protection against the direct exfiltration attacks (also known as EFAIL-DE) described in <xref target="EFAIL"></xref>.</t>

</section>
<section anchor="do-not-decrypt-non-mime-decryption-when-replying"><name>Do Not Decrypt Non-MIME Decryption when Replying</name>

<t>When composing a reply to a message with such a non-MIME encrypted section, the MUA <bcp14>MUST NOT</bcp14> decrypt the any non-MIME encrypted section when generating quoted or attributed text, similar to the guidance in <xref target="reply-to-errant-encryption"/>.</t>

<t>This offers protection against the reply-based attacks described in <xref target="EFAIL"></xref>.</t>

</section>
</section>
</section>
<section anchor="forwarded-messages-with-cryptographic-protection"><name>Forwarded Messages with Cryptographic Protection</name>

<t>An incoming e-mail message may include an attached forwarded message, typically as a MIME subpart with <spanx style="verb">Content-Type: message/rfc822</spanx> (<xref target="RFC5322"/>) or <spanx style="verb">Content-Type: message/global</spanx> (<xref target="RFC5355"/>).</t>

<t>Regardless of the cryptographic protections and structure of the incoming message, the internal forwarded message may have its own Cryptographic Envelope.</t>

<t>The Cryptographic Layers that are part of the Cryptographic Envelope of the forwarded message are not Errant Cryptographic Layers of the surrounding message -- they are simply layers that apply to the forwarded message itself.</t>

<t>The rendering MUA <bcp14>MUST NOT</bcp14> conflate the cryptographic protections of the forwarded message with the cryptographic protections of the incoming message.</t>

<t>The rendering MUA <bcp14>MAY</bcp14> render a cryptographic summary of the protections afforded to the forwarded message by its own Cryptographic Envelope, as long as that rendering is unambiguously tied to the forwarded message itself, and cannot be spoofed either by the enclosing message or by the forwarded message.</t>

</section>
<section anchor="signature-failures"><name>Signature failures</name>

<t>A cryptographic signature may fail in multiple ways.
A receiving MUA that discovers a failed signature should treat the message as though the signature did not exist.
This is similar to the standard guidance for about failed DKIM signatures (see <xref section="6.1" sectionFormat="of" target="RFC6376"/>).</t>

<t>A MUA <bcp14>SHOULD NOT</bcp14> render a message with a failed signature as more dangerous or more dubious than a comparable message without any signature at all.</t>

<t>A MUA that encounters an encrypted-and-signed message where the signature is invalid <bcp14>SHOULD</bcp14> treat the message the same way that it would treat a message that is encryption-only.</t>

<t>Some different ways that a signature may be invalid on a given message:</t>

<t><list style="symbols">
  <t>the signature is not cryptographically valid (the math fails).</t>
  <t>the signature relies on suspect cryptographic primitives (e.g. over a legacy digest algorithm, or was made by a weak key, e.g., 1024-bit RSA)</t>
  <t>the signature is made by a certificate which the receiving MUA does not have access to.</t>
  <t>the certificate that made the signature was revoked.</t>
  <t>the certificate that made the signature was expired at the time that the signature was made.</t>
  <t>the certificate that made the signature does not correspond to the author of the message. (for X.509, there is no subjectAltName of type RFC822Name whose value matches an e-mail address found in <spanx style="verb">From:</spanx> or <spanx style="verb">Sender:</spanx>)</t>
  <t>the certificate that made the signature was not issued by an authority that the MUA user is willing to rely on for certifying the sender's e-mail address, and the user has no other reasonable indication that the certificate belongs to the sender's e-mail address.</t>
  <t>the signature indicates that it was made at a time much before or much after from the date of the message itself.</t>
</list></t>

<t>A valid signature must pass all these tests, but of course invalid signatures may be invalid in more than one of the ways listed above.</t>

</section>
</section>
<section anchor="reasoning-about-message-parts"><name>Reasoning about Message Parts</name>

<t>When generating or rendering messages, it is useful to know what parts of the message are likely to be displayed, and how.
This section introduces some common terms that can be applied to parts within the Cryptographic Payload.</t>

<section anchor="main-body-part"><name>Main Body Part</name>

<t>When an e-mail message is composed or rendered to the user there is typically one main view that presents a (mostly textual) part of the message.</t>

<t>While the message itself may be constructed of several distinct MIME parts in a tree, the part that is rendered to the user is the "Main Body Part".</t>

<t>When rendering a message, one of the primary jobs of the receiving MUA is identifying which part (or parts) is the Main Body Part.
Typically, this is found by traversing the MIME tree of the message looking for a leaf node that has a primary content type of <spanx style="verb">text</spanx> (e.g. <spanx style="verb">text/plain</spanx> or <spanx style="verb">text/html</spanx>) and is not <spanx style="verb">Content-Disposition: attachment</spanx>.</t>

<t>MIME tree traversal follows the first child of every <spanx style="verb">multipart</spanx> node, with the exception of <spanx style="verb">multipart/alternative</spanx>.
When traversing a <spanx style="verb">multipart/alternative</spanx> node, all children should be scanned, with preference given to the last child node with a MIME type that the MUA is capable of rendering directly.</t>

<t>A MUA <bcp14>MAY</bcp14> offer the user a mechanism to prefer a particular MIME type within <spanx style="verb">multipart/alternative</spanx> instead of the last renderable child.
For example, a user may explicitly prefer a <spanx style="verb">text/plain</spanx> alternative part over <spanx style="verb">text/html</spanx>.</t>

<t>Note that due to uncertainty about the capabilities and configuration of the receiving MUA, the composing MUA <bcp14>SHOULD</bcp14> consider that multiple parts might be rendered as the Main Body Part when the message is ultimately viewed.</t>

<t>When composing a message, an originating MUA operating on behalf of an active user can identify which part (or parts) are the "main" parts: these are the parts the MUA generates from the user's editor.
Tooling that automatically generates e-mail messages should also have a reasonable estimate of which part (or parts) are the "main" parts, as they can be programmatically identified by the message author.</t>

<t>For a filtering program that attempts to transform an outbound message without any special knowledge about which parts are Main Body Parts, it can identify the likely parts by following the same routine as a receiving MUA.</t>

</section>
<section anchor="attachments"><name>Attachments</name>

<t>A message may contain one or more separated MIME parts that are intended for download or extraction.
Such a part is commonly called an "attachment", and is commonly identified by having <spanx style="verb">Content-Disposition: attachment</spanx>, and is a subpart of a <spanx style="verb">multipart/mixed</spanx> or <spanx style="verb">multipart/related</spanx> container.</t>

<t>An MUA <bcp14>MAY</bcp14> identify a subpart as an attachment, or permit extraction of a subpart even when the subpart does not have <spanx style="verb">Content-Disposition: attachment</spanx>.</t>

<t>For a message with end-to-end cryptographic protection, any attachment <em><bcp14>MUST</bcp14></em> be included within the Cryptographic Payload.
If an attachment is found outside the Cryptographic Payload, then the message is not well-formed (see <xref target="well-formed"/>).</t>

<t>Some MUAs have tried to compose messages where each attachment is placed in its own cryptographic envelope.
Such a message is problematic for several reasons:</t>

<t><list style="symbols">
  <t>The attachments can be stripped, replaced, or reordered without breaking any cryptographic integrity mechanism.</t>
  <t>The resulting message may have a mix of cryptographic statuses (e.g. if a signature on one part fails but another succeeds, or if one part is encrypted and another is not).
This mix of statuses is difficult to represent to the user in a comprehensible way.</t>
</list></t>

</section>
<section anchor="mime-part-examples"><name>MIME Part Examples</name>

<t>Consider a common message with the folloiwing MIME structure:</t>

<figure><artwork><![CDATA[
M └─╴application/pkcs7-mime
   ↧ (decrypts to)
N  └─╴application/pkcs7-mime
    ⇩ (unwraps to)
O   └┬╴multipart/mixed
P    ├┬╴multipart/alternative
Q    │├─╴text/plain
R    │└─╴text/html
S    └─╴image/png
]]></artwork></figure>

<t>Parts M and N comprise the Cryptographic Envelope.</t>

<t>Parts Q and R are both Main Body Parts.</t>

<t>If part S is <spanx style="verb">Content-Disposition: attachment</spanx>, then it is an attachment.
If part S has no <spanx style="verb">Content-Disposition</spanx> header, it is potentially ambiguous whether it is an attachment or not.</t>

<t>Consider also this alternate structure:</t>

<figure><artwork><![CDATA[
M └─╴application/pkcs7-mime
   ↧ (decrypts to)
N  └─╴application/pkcs7-mime
    ⇩ (unwraps to)
O   └┬╴multipart/alternative
P    ├─╴text/plain
Q    └┬╴multipart/related
R     ├─╴text/html
S     └─╴image/png
]]></artwork></figure>

<t>In this case, parts M and N are still the Cryptographic Envelope.</t>

<t>Parts P and R (the first two leaf nodes within each subtree of part O) are the Main Body Parts.</t>

<t>Part S is more likely not to be an attachment, as the subtree layout suggests that it is only relevant for the HTML version of the message.
For example, it might be rendered as an image within the HTML alternative.</t>

</section>
</section>
<section anchor="cert-management"><name>Certificate Management</name>

<t>A cryptographically-capable MUA typically maintains knowledge about certificates for the user's own account(s), as well as certificates for the peers that it communicates with.</t>

<section anchor="peer-certificates"><name>Peer Certificates</name>

<t>Most certificates that a cryptographically-capable MUA will use will be certificates belonging to the parties that the user communicates with through the MUA.
This section discusses how to manage the certificates that belong to such a peer.</t>

<t>The MUA will need to be able to discover X.509 certificates for each peer, cache them, and select among them when composing an encrypted message.</t>

<section anchor="peer-discovery-incoming"><name>Cert Discovery from Incoming Messages</name>

<t>TODO: incoming PKCS#7 messages tend to have a bundle of certificates in them.
How should these certs be handled?</t>

<t>TODO: point to Autocrypt certificate discovery mechanism</t>

<t>TODO: point to OpenPGP embedded certificate subpacket proposal</t>

<t>TODO: compare mechanisms, explain where each case is useful.</t>

</section>
<section anchor="peer-discovery--directory"><name>Certificate Directories</name>

<t>Some MUAs may have the capability to look up peer certificates in a directory.</t>

<t>TODO: more information here about X.509 directories -- LDAP?</t>

<t>TODO: mention WKD for OpenPGP certificates?</t>

<t>TODO: mention SMIMEA and OPENPGPKEY DNS RRs</t>

</section>
<section anchor="peer-cert-selection"><name>Peer Certificate Selection</name>

<t>When composing an encrypted message, the MUA needs to select a certificate for each recipient that is capable of encryption.</t>

<t>To select such a certificate for a given destination e-mail address, the MUA should look through all of its known certificates and verify that <em>all</em> of the conditions below are met:</t>

<t><list style="symbols">
  <t>The certificate must be valid, not expired or revoked.</t>
  <t>It must have a subjectAltName of type rFC822Name whose contents exactly match the destination address.</t>
  <t>The algorithm OID in the certificate's SPKI is known to the MUA and capable of encryption.
Examples include (TODO: need OIDs)
  <list style="symbols">
      <t>RSA, with keyUsage present and the "key encipherment" bit set</t>
      <t>EC Public Key, with keyUsage present and the "key agreement" bit set</t>
      <t>EC DH, with keyUsage present and the "key agreement" bit set</t>
    </list></t>
  <t>If extendedKeyUsage is present, it contains at least one of the following OIDs: e-mail protection, anyExtendedKeyUsage.</t>
</list></t>

<t>TODO: If OID is EC Public Key and keyUsage is absent, what should happen?</t>

<t>TODO: what if multiple certificates meet all of these criteria for a given recipient?</t>

</section>
<section anchor="cert-revocation"><name>Checking for Revocation</name>

<t>TODO: discuss how/when to check for peer certificate revocation</t>

<t>TODO: privacy concerns: what information leaks to whom when checking peer cert revocations?</t>

</section>
</section>
<section anchor="local-certificates"><name>Local Certificates</name>

<t>The MUA also needs to know about one or more certificates associated with the user's e-mail account.
It is typically expected to have access to the secret key material associated with the public keys in those certificates.</t>

<section anchor="local-certificate-setup"><name>Getting a Certificate for the User</name>

<t>TODO: mention ACME SMIME?</t>

<t>TODO: mention automatic self-signed certs e.g. OpenPGP?</t>

<t>TODO: <bcp14>SHOULD</bcp14> generate secret key material locally, and <bcp14>MUST NOT</bcp14> accept secret key material from an untrusted third party as the basis for the user's certificate.</t>

</section>
<section anchor="local-cert-maintenance"><name>Local Certificate Maintenance</name>

<t>The MUA should warn the user when/if:</t>

<t><list style="symbols">
  <t>The user's own certificate set does not include a valid, unexpired encryption-capable X.509 certificate, and a valid, unexpired signature-capable X.509 certificate.</t>
  <t>Any of the user's own certificates is due to expire soon (TODO: what is "soon"?)</t>
  <t>Any of the user's own certificates does not match the e-mail address associated with the user's account.</t>
  <t>Any of the user's own certificates does not have a keyUsage section</t>
  <t>Any of the user's own certificates does not contain an extendedKeyUsage extension</t>
</list></t>

<t>TODO: how does the MUA do better than warning in the cases above?
What can the MUA actually <em>do</em> here to fix problems before they happen?</t>

<t>TODO: discuss how/when to check for own certificate revocation, and what to do if it (or any intermediate certificate authority) is found to be revoked.</t>

</section>
<section anchor="sending-certificates"><name>Shipping Certificates in Outbound Messages</name>

<t>TODO: What certificates should the MUA include in an outbound message so that peers can discover them?</t>

<t><list style="symbols">
  <t>local signing certificate so that signature can be validated</t>
  <t>local encryption-capable certificate(s) so that incoming messages can be encrypted.</t>
  <t>On an encrypted message to multiple recipients, the encryption-capable peer certs of the other recipients (to enable "reply all")?</t>
  <t>intermediate certificates to chain all of the above to some set of root authorities?</t>
</list></t>

</section>
</section>
<section anchor="cert-authorities"><name>Certificate Authorities</name>

<t>TODO: how should the MUA select root certificate authorities?</t>

<t>TODO: should the MUA cache intermediate CAs?</t>

<t>TODO: should the MUA share such a cache with other PKI clients (e.g., web browsers)?
Are there distinctions between a CA for S/MIME and for the web?</t>

</section>
</section>
<section anchor="common-pitfalls"><name>Common Pitfalls and Guidelines</name>

<t>This section highlights a few "pitfalls" and guidelines based on these discussions and lessons learned.</t>

<t>FIXME: some possible additional commentary on:</t>

<t><list style="symbols">
  <t>indexing and search of encrypted messages</t>
  <t>managing access to cryptographic secret keys that require user interaction</t>
  <t>secure deletion</t>
  <t>storage of composed/sent messages</t>
  <t>cached signature validation</t>
  <t>aggregated cryptographic status of threads/conversations ?</t>
  <t>Draft messages</t>
  <t>copies to the Sent folder</t>
</list></t>

<section anchor="reading-sent-messages"><name>Reading Sent Messages</name>

<t>When composing a message, a typical MUA will store a copy of the message sent in sender's Sent mail folder so that the sender can read it later.
If the message is an encrypted message, storing it encrypted requires some forethought to ensure that the sender can read it in the future.</t>

<t>It is a common and simple practice to encrypt the message not only to the recipients of the message, but also to the sender.
One advantage of doing this is that the message that is sent on the wire can be identical to the message stored in the sender's Sent mail folder.
This allows the sender to review and re-read the message even though it was encrypted.</t>

<t>There are at least three other approaches that are possible to ensure future readability by the sender of the message, but with different tradeoffs:</t>

<t><list style="symbols">
  <t>Encrypt two versions of the message: one to the recipients (this version is sent on the wire), and one to the sender only (this version is stored in the sender's Sent folder).
This approach means that the message stored in the Sent folder is not byte-for-byte identical to the message sent to the recipients.
In the event that message delivery has a transient failure, the MUA cannot simply re-submit the stored message into the SMTP system and expect it to be readable by the recipient.</t>
  <t>Store a cleartext version of the message in the Sent folder.
This presents a risk of information leakage: anyone with access to the Sent folder can read the contents of the message.
Furthermore, any attempt to re-send the message needs to also re-apply the cryptographic transformation before sending, or else the message contents will leak upon re-send.</t>
  <t>A final option is that the MUA can store a copy of the message's encryption session key.
Standard e-mail encryption mechanisms (e.g. S/MIME and PGP/MIME) are hybrid mechanisms: the asymmetric encryption steps simply encrypt a symmetric "session key", which is used to encrypt the message itself.
If the MUA stores the session key itself, it can use the session key to decrypt the Sent message without needing the Sent message to be decryptable by the user's own asymmetric key.
An MUA doing this must take care to store (and backup) its stash of session keys, because if it loses them it will not be able to read the sent messages; and if someone else gains access to them, they can decrypt the sent messages.
This has the additional consequence that any other MUA accessing the same Sent folder cannot decrypt the message unless it also has access to the stashed session key.</t>
</list></t>

</section>
<section anchor="bcc-variants"><name>Composing an Encrypted Message with Bcc</name>

<t>When composing an encrypted message containing at least one recipient address in the <spanx style="verb">Bcc</spanx> header field, there is a risk that the encrypted message itself could leak information about the actual recipients, even if the <spanx style="verb">Bcc</spanx> header field does not mention the recipient.
For example, if the message clearly indicates which certificates it is encrypted to, the set of certificates can identify the recipients even if they are not named in the message headers.</t>

<t>Because of these complexities, there are several interacting factors that need to be taken into account when composing an encrypted message with Bcc'ed recipients.</t>

<t><list style="symbols">
  <t><xref section="3.6.3" sectionFormat="of" target="RFC5322"/> describes a set of choices about whether (and how) to populate the <spanx style="verb">Bcc</spanx> field explicitly on Bcc'ed copies of the message, and in the copy stored in the sender's <spanx style="verb">Sent</spanx> folder.</t>
  <t>When separate copies are made for <spanx style="verb">Bcc</spanx>ed recipients, should each separate copy <em>also</em> be encrypted to the named recipients, or just to the designated <spanx style="verb">Bcc</spanx> recipient?</t>
  <t>When a copy is stored in the <spanx style="verb">Sent</spanx> folder, should that copy also be encrypted to <spanx style="verb">Bcc</spanx>ed recipients? (see also <xref target="reading-sent-messages"/>)</t>
  <t>When a message is encrypted, if there is a mechanism to include the certificates of the recipients, whose certificates should be included?</t>
</list></t>

<section anchor="bcc-recommendation"><name>Simple Encryption with Bcc</name>

<t>Here is a simple approach that tries to minimize the total number of variants of the message created while leaving a coherent view of the message itself:</t>

<t><list style="symbols">
  <t>No cryptographic payload contains any <spanx style="verb">Bcc</spanx> header field.</t>
  <t>The main copy of the message is signed and encrypted to all named recipients and to the sender.
A copy of this message is also stored in the sender's <spanx style="verb">Sent</spanx> folder.</t>
  <t>Each <spanx style="verb">Bcc</spanx> recipient receives a distinct copy of the message, with an identical cryptographic payload, and the message is signed and encrypted to that specific recipient and all the named recipients.
These copies are not stored in the sender's <spanx style="verb">Sent</spanx> folder.</t>
  <t>To the extent that spare certificates are included in the message, each generated copy of the message should include certificates for the sender and for each named recipient.
Certificates for Bcc'ed recipients are not included in any message.</t>
</list></t>

<section anchor="rationale"><name>Rationale</name>

<t>The approach described in <xref target="bcc-recommendation"/>  aligns the list of cryptographic recipients as closely as possible with the set of named recipients, while still allowing a <spanx style="verb">Bcc</spanx>ed recipient to read their own copy, and to "Reply All" should they want to.</t>

<t>This should reduce user confusion on the receiving side: a recipient of such a message who naively looks at the user-facing headers from their own mailbox will have a good sense of what cryptographic treatments have been applied to the message.
It also simplifies message composition and user experience: the message composer sees fields that match their expectations about what will happen to the message.
Additionally, it may preserve the ability for a Bcc'ed recipient to retain their anonymity, should they need to offer the signed cryptographic payload to an outside party as proof of the original sender's intent without revealing their own identity.</t>

</section>
</section>
</section>
<section anchor="mixed-recipients"><name>Composing a Message to Heterogeneous Recipients</name>

<t>When sending a message that the user intends to be encrypted, it's possible that some recipients will be unable to receive an encrypted copy.
For example, when Carol composes a message to Alice and Bob, Carol's MUA may be able to find a valid encryption-capable certificate for Alice, but none for Bob.</t>

<t>In this situation, there are four possible strategies, each of which has a negative impact on the experience of using encrypted mail.
Carol's MUA can:</t>

<t><list style="numbers">
  <t>send encrypted to Alice and Bob, knowing that Bob will be unable to read the message.</t>
  <t>send encrypted to Alice only, dropping Bob from the message recipient list.</t>
  <t>send the message in the clear to both Alice and Bob.</t>
  <t>send an encrypted copy of the message to Alice, and a cleartext copy to Bob.</t>
</list></t>

<t>Each of these strategies has different drawbacks.</t>

<t>The problem with approach 1 is that Bob will receive unreadable mail.</t>

<t>The problem with approach 2 is that Carol's MUA will not send the message to Bob, despite Carol asking it to.</t>

<t>The problem with approach 3 is that Carol's MUA will not encrypt the message, despite Carol asking it to.</t>

<t>Approach 4 has two problems:</t>

<t><list style="symbols">
  <t>Carol's MUA will release a cleartext copy of the message, despite Carol asking it to send the message encrypted.</t>
  <t>If Alice wants to "reply all" to the message, she may not be able to find an encryption-capable certificate for Bob either.
This puts Alice in an awkward and confusing position, one that users are unlikely to understand.
In particular, if Alice's MUA is following the guidance about replies to encrypted messages in <xref target="composing-reply"/>, having received an encrypted copy will make Alice's Reply buffer behave in an unusual fashion.</t>
</list></t>

<t>This is particularly problematic when the second recipient is not "Bob" but in fact a public mailing list or other visible archive, where messages are simply never encrypted.</t>

<t>Carol is unlikely to understand the subtleties and negative downstream interactions involved with approaches 1 and 4, so presenting the user with those choices is not advised.</t>

<t>The most understandable approach for a MUA with an active user is to ask the user (when they hit "send") to choose between approach 2 and approach 3.
If the user declines to choose between 2 and 3, the MUA can drop them back to their message composition window and let them make alternate adjustments.</t>

</section>
<section anchor="message-transport-protocol-proxy-a-dangerous-implementation-choice"><name>Message Transport Protocol Proxy: A Dangerous Implementation Choice</name>

<t>An implementor of end-to-end cryptographic protections may be tempted by a simple software design that piggybacks off of a mail protocol like SMTP, IMAP, or JMAP to handle message assembly and interpretation.
In such an architecture, a naive MUA speaks something like a "standard" protocol like SMTP, IMAP, or JMAP to a local proxy, and the proxy handles signing and encryption (outbound), and decryption and verification (inbound) internally on behalf of the user.
While such a "pluggable" architecture has the advantage that it is likely to be easy to apply to any mail user agent, it is problematic for the goals of end-to-end communication, especially in an existing cleartext ecosystem like e-mail, where any given message might be unsigned or signed, cleartext or encrypted.
In particular:</t>

<t><list style="symbols">
  <t>the user cannot easily and safely identify what protections any particular message has (including messages currently being composed), and</t>
  <t>the proxy itself is unaware of subtle nuances about the message that the MUA actually knows.</t>
</list></t>

<t>With a trustworthy and well-synchronized sidechannel or protocol extension between the MUA and the proxy, it is possible to deploy such an implementation safely, but the requirement for the sidechannel or extension eliminates the universal-deployability advantage of the scheme.</t>

<t>This section attempts to document some of the inherent risks involved with such an architecture.</t>

<section anchor="proxy-for-message-composition"><name>Dangers of a Submission Proxy for Message Composition</name>

<t>When composing and sending a message, the act of applying cryptographic protections has subtleties that cannot be directly expressed in the SMTP protocol used by Submission <xref target="RFC6409"/>, or in any other simple protocol that hands off a cleartext message for further processing.</t>

<t>For example, the sender cannot indicate via SMTP whether or not a given message <em>should</em> be encrypted (some messages, like those sent to a publicly archived mailing list, are pointless to encrypt), or select among multiple certificates for a recipient, if they exist (see <xref target="peer-cert-selection"/>).</t>

<t>Likewise, because such a proxy only interacts with the message when it is ready to be sent, it cannot indicate back to the user <em>during message composition</em> whether or not the message is able to be encrypted (that is, whether a valid certificate is available for each intended recipient).
A message author may write an entirely different message if they know that it will be protected end-to-end; but without this knowledge, the author is obliged either to write text that they presume will be intercepted, or to risk revealing sensitive content.</t>

<t>Even without encryption, deciding whether to sign or not (and which certificate to sign with, if more than one exists) is another choice that the proxy is ill-equipped to make.
The common message-signing techniques either render a message unreadable by any client that does not support cryptographic mail (i.e., PKCS7 signed-data), or appear as an attachment that can cause confusion to a naive recipient using a legacy client (i.e., multipart/signed).
If the sender knows that the recipient will not check signatures, they may prefer to leave a cleartext message without a cryptographic signature at all.</t>

<t>Furthermore, handling encryption properly depends on the context of any given message, which cannot be expressed by the MUA to the Submission proxy.
For example, decisions about how to handle encryption and quoted or attributed text may depend on the cryptographic status of the message that is being replied to (see <xref target="composing-reply"/>).</t>

<t>Additionally, such a proxy would need to be capable of managing the user's own key and certificate (see <xref target="local-certificates"/>).
How will the implementation indicate to the user when their own certificate is near expiry, for example?
How will any other error conditions be handled when communication with the user is needed?</t>

<t>While an extension to SMTP might be able to express all the necessary semantics that would allow a generic MUA to compose messages with standard cryptographic protections via a proxy, such an extension is beyond the scope of this document.
FIXME: add a reference to JMAP cryptographic message composition work.</t>

</section>
<section anchor="dangers-of-an-imap-proxy-for-message-rendering"><name>Dangers of an IMAP Proxy for Message Rendering</name>

<t>When receiving and rendering a message, the process of indicating to the user the cryptographic status of a message requires subtleties that are difficult to offer from a straightforwad IMAP (or POP, or JMAP) proxy.</t>

<t>One approach such a proxy could take is to remove all the Cryptographic Layers from a well-formed message, and to package a description of those layers into a special header field that the MUA can read.
But this merely raises the question: what semantics need to be represented?
For example:</t>

<t><list style="symbols">
  <t>Was the message signed?  If so, by whom?  When?</t>
  <t>Should the details of the cryptographic algorithms used in any signatures found be indicated as well?</t>
  <t>Was the message encrypted?  if so, to whom?  What key was used to decrypt it?</t>
  <t>If both signed and encrypted, was the signing outside the encryption or inside?</t>
  <t>How should errant Cryptographic Layers (see <xref target="errant-cryptographic-layers"/>) be dealt with?</t>
  <t>What cryptographic protections do the headers of the message have? (see <xref target="I-D.draft-ietf-lamps-header-protection"/>)</t>
  <t>How are any errors or surprises communicated to the user?</t>
</list></t>

<t>If the proxy passes any of this cryptographic status to the client in an added header field, it must also ensure that no such header field is present on the messages it receives before processing it.
If it were to allow such a header field through unmodified to any client that is willing to trust its contents, an attacker could spoof the field to make the user believe lies about the cryptographic status of the message.
In order for a MUA to be confident in such a header field, then, it needs a guarantee from the proxy that any header it produces will be safe.
How does the MUA reliably negogiate this guarantee with the proxy?
If the proxy can no longer offer this guarantee, how will the MUA know that things have changed?</t>

<t>If such a proxy handles certificate discovery in inbound messages (see <xref target="peer-discovery-incoming"/>), it will also need to communicate the results of that discovery process to its corresponding proxy for message composition (see <xref target="proxy-for-message-composition"/>).</t>

<t>While an extension to IMAP (or POP, or JMAP) might be able to express all the necessary semantics that would allow a generic MUA to indicate standardized cryptographic message status, such an extension is beyond the scope of this document.
FIXME: add a reference to JMAP cryptographic status work.</t>

</section>
<section anchor="who-controls-the-proxy"><name>Who Controls the Proxy?</name>

<t>Finally, consider that the naive proxy deployment approach is risky precisely because of its opacity to the end user.
Such a deployment could be placed anywhere in the stack, including on a machine that is not ultimately controlled by the end user, making it effectively a form of transport protection, rather than end-to-end protection.</t>

<t>A MUA explicitly under the control of the end user with thoughtful integration can offer UI/UX and security guarantees that a proxy cannot provide.</t>

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

<t>MAYBE: provide an indicator in the IANA header registry for which headers are "structural" and which are "user-facing"?
This is probably unnecessary.</t>

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

<t>This entire document addresses security considerations about end-to-end cryptographic protections for e-mail messages.</t>

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

<t>The set of constructs and recommendations in this document are derived from discussions with many different implementers, including
Alexey Melnikov,
Bernie Hoeneisen,
Bjarni Rúnar Einarsson,
David Bremner,
Deb Cooley,
Holger Krekel,
Jameson Rollins,
Jonathan Hammell,
juga,
Patrick Brunschwig,
Santosh Chokhani, and
Vincent Breitmoser.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC8551' target='https://www.rfc-editor.org/info/rfc8551'>
<front>
<title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<author fullname='B. Ramsdell' initials='B.' surname='Ramsdell'><organization/></author>
<author fullname='S. Turner' initials='S.' surname='Turner'><organization/></author>
<date month='April' year='2019'/>
<abstract><t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0.  S/MIME provides a consistent way to send and receive secure MIME data.  Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality.  Compression can be used to reduce data size.  This document obsoletes RFC 5751.</t></abstract>
</front>
<seriesInfo name='RFC' value='8551'/>
<seriesInfo name='DOI' value='10.17487/RFC8551'/>
</reference>



<reference anchor='RFC3156' target='https://www.rfc-editor.org/info/rfc3156'>
<front>
<title>MIME Security with OpenPGP</title>
<author fullname='M. Elkins' initials='M.' surname='Elkins'><organization/></author>
<author fullname='D. Del Torto' initials='D.' surname='Del Torto'><organization/></author>
<author fullname='R. Levien' initials='R.' surname='Levien'><organization/></author>
<author fullname='T. Roessler' initials='T.' surname='Roessler'><organization/></author>
<date month='August' year='2001'/>
<abstract><t>This document describes how the OpenPGP Message Format can be used to provide privacy and authentication using the Multipurpose Internet Mail Extensions (MIME) security content types described in RFC 1847. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3156'/>
<seriesInfo name='DOI' value='10.17487/RFC3156'/>
</reference>



<reference anchor='RFC4289' target='https://www.rfc-editor.org/info/rfc4289'>
<front>
<title>Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures</title>
<author fullname='N. Freed' initials='N.' surname='Freed'><organization/></author>
<author fullname='J. Klensin' initials='J.' surname='Klensin'><organization/></author>
<date month='December' year='2005'/>
<abstract><t>This document specifies IANA registration procedures for MIME external body access types and content-transfer-encodings.  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='13'/>
<seriesInfo name='RFC' value='4289'/>
<seriesInfo name='DOI' value='10.17487/RFC4289'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<date month='March' year='1997'/>
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="chrome-indicators" target="https://blog.chromium.org/2018/05/evolving-chromes-security-indicators.html">
  <front>
    <title>Evolving Chrome's security indicators</title>
    <author initials="E." surname="Schechter" fullname="Emily Schechter">
      <organization></organization>
    </author>
    <date year="2018" month="May"/>
  </front>
</reference>
<reference anchor="EFAIL" target="https://efail.de">
  <front>
    <title>EFAIL</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="ORACLE" target="https://www.usenix.org/conference/usenixsecurity23/presentation/ising">
  <front>
    <title>Content-Type: multipart/oracle Tapping into Format Oracles in Email End-to-End Encryption</title>
    <author initials="F." surname="Ising" fullname="Fabian Ising">
      <organization></organization>
    </author>
    <author initials="D." surname="Poddebniak" fullname="Damian Poddebniak">
      <organization></organization>
    </author>
    <author initials="T." surname="Kappert" fullname="Tobias Kappert">
      <organization></organization>
    </author>
    <author initials="C." surname="Saatjohann" fullname="Christoph Saatjohann">
      <organization></organization>
    </author>
    <author initials="S." surname="Schinzel" fullname="Sebastian Schinzel">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>




<reference anchor='RFC2045' target='https://www.rfc-editor.org/info/rfc2045'>
<front>
<title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
<author fullname='N. Freed' initials='N.' surname='Freed'><organization/></author>
<author fullname='N. Borenstein' initials='N.' surname='Borenstein'><organization/></author>
<date month='November' year='1996'/>
<abstract><t>This initial document specifies the various headers used to describe the structure of MIME messages.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2045'/>
<seriesInfo name='DOI' value='10.17487/RFC2045'/>
</reference>



<reference anchor='RFC3207' target='https://www.rfc-editor.org/info/rfc3207'>
<front>
<title>SMTP Service Extension for Secure SMTP over Transport Layer Security</title>
<author fullname='P. Hoffman' initials='P.' surname='Hoffman'><organization/></author>
<date month='February' year='2002'/>
<abstract><t>This document describes an extension to the SMTP (Simple Mail Transfer Protocol) service that allows an SMTP server and client to use TLS (Transport Layer Security) to provide private, authenticated communication over the Internet.  This gives SMTP agents the ability to protect some or all of their communications from eavesdroppers and attackers.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3207'/>
<seriesInfo name='DOI' value='10.17487/RFC3207'/>
</reference>



<reference anchor='RFC6376' target='https://www.rfc-editor.org/info/rfc6376'>
<front>
<title>DomainKeys Identified Mail (DKIM) Signatures</title>
<author fullname='D. Crocker' initials='D.' role='editor' surname='Crocker'><organization/></author>
<author fullname='T. Hansen' initials='T.' role='editor' surname='Hansen'><organization/></author>
<author fullname='M. Kucherawy' initials='M.' role='editor' surname='Kucherawy'><organization/></author>
<date month='September' year='2011'/>
<abstract><t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message.  This can be an author's organization, an operational relay, or one of their agents.  DKIM separates the question of the identity of the Signer of the message from the purported author of the message.  Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key.  Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t><t>This memo obsoletes RFC 4871 and RFC 5672.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='76'/>
<seriesInfo name='RFC' value='6376'/>
<seriesInfo name='DOI' value='10.17487/RFC6376'/>
</reference>



<reference anchor='RFC3274' target='https://www.rfc-editor.org/info/rfc3274'>
<front>
<title>Compressed Data Content Type for Cryptographic Message Syntax (CMS)</title>
<author fullname='P. Gutmann' initials='P.' surname='Gutmann'><organization/></author>
<date month='June' year='2002'/>
<abstract><t>This document defines a format for using compressed data as a Cryptographic Message Syntax (CMS) content type.  Compressing data before transmission provides a number of advantages, including the elimination of data redundancy which could help an attacker, speeding up processing by reducing the amount of data to be processed by later steps (such as signing or encryption), and reducing overall message size. Although there have been proposals for adding compression at other levels (for example at the MIME or SSL level), these don't address the problem of compression of CMS content unless the compression is supplied by an external means (for example by intermixing MIME and CMS). [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3274'/>
<seriesInfo name='DOI' value='10.17487/RFC3274'/>
</reference>



<reference anchor='RFC4880' target='https://www.rfc-editor.org/info/rfc4880'>
<front>
<title>OpenPGP Message Format</title>
<author fullname='J. Callas' initials='J.' surname='Callas'><organization/></author>
<author fullname='L. Donnerhacke' initials='L.' surname='Donnerhacke'><organization/></author>
<author fullname='H. Finney' initials='H.' surname='Finney'><organization/></author>
<author fullname='D. Shaw' initials='D.' surname='Shaw'><organization/></author>
<author fullname='R. Thayer' initials='R.' surname='Thayer'><organization/></author>
<date month='November' year='2007'/>
<abstract><t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format.  It is not a step-by-step cookbook for writing an application.  It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network.  It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t><t>OpenPGP software uses a combination of strong public-key and symmetric cryptography to provide security services for electronic communications and data storage.  These services include confidentiality, key management, authentication, and digital signatures.  This document specifies the message formats used in OpenPGP.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4880'/>
<seriesInfo name='DOI' value='10.17487/RFC4880'/>
</reference>



<reference anchor='RFC5322' target='https://www.rfc-editor.org/info/rfc5322'>
<front>
<title>Internet Message Format</title>
<author fullname='P. Resnick' initials='P.' role='editor' surname='Resnick'><organization/></author>
<date month='October' year='2008'/>
<abstract><t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of &quot;electronic mail&quot; messages.  This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, &quot;Standard for the Format of ARPA Internet Text Messages&quot;, updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5322'/>
<seriesInfo name='DOI' value='10.17487/RFC5322'/>
</reference>



<reference anchor='RFC5355' target='https://www.rfc-editor.org/info/rfc5355'>
<front>
<title>Threats Introduced by Reliable Server Pooling (RSerPool) and Requirements for Security in Response to Threats</title>
<author fullname='M. Stillman' initials='M.' role='editor' surname='Stillman'><organization/></author>
<author fullname='R. Gopal' initials='R.' surname='Gopal'><organization/></author>
<author fullname='E. Guttman' initials='E.' surname='Guttman'><organization/></author>
<author fullname='S. Sengodan' initials='S.' surname='Sengodan'><organization/></author>
<author fullname='M. Holdrege' initials='M.' surname='Holdrege'><organization/></author>
<date month='September' year='2008'/>
<abstract><t>Reliable Server Pooling (RSerPool) is an architecture and set of protocols for the management and access to server pools supporting highly reliable applications and for client access mechanisms to a server pool.  This document describes security threats to the RSerPool architecture and presents requirements for security to thwart these threats.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='5355'/>
<seriesInfo name='DOI' value='10.17487/RFC5355'/>
</reference>



<reference anchor='RFC6409' target='https://www.rfc-editor.org/info/rfc6409'>
<front>
<title>Message Submission for Mail</title>
<author fullname='R. Gellens' initials='R.' surname='Gellens'><organization/></author>
<author fullname='J. Klensin' initials='J.' surname='Klensin'><organization/></author>
<date month='November' year='2011'/>
<abstract><t>This memo splits message submission from message relay, allowing each service to operate according to its own rules (for security, policy, etc.), and specifies what actions are to be taken by a submission server.</t><t>Message relay is unaffected, and continues to use SMTP over port 25.</t><t>When conforming to this document, message submission uses the protocol specified here, normally over port 587.</t><t>This separation of function offers a number of benefits, including the ability to apply specific security or policy requirements.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='72'/>
<seriesInfo name='RFC' value='6409'/>
<seriesInfo name='DOI' value='10.17487/RFC6409'/>
</reference>


<reference anchor='I-D.draft-ietf-lamps-header-protection'>
   <front>
      <title>Header Protection for S/MIME</title>
      <author fullname='Daniel Kahn Gillmor' initials='D. K.' surname='Gillmor'>
         <organization>American Civil Liberties Union</organization>
      </author>
      <author fullname='Bernie Hoeneisen' initials='B.' surname='Hoeneisen'>
         <organization>pEp Foundation</organization>
      </author>
      <author fullname='Alexey Melnikov' initials='A.' surname='Melnikov'>
         <organization>Isode Ltd</organization>
      </author>
      <date day='24' month='January' year='2023'/>
      <abstract>
	 <t>   S/MIME version 3.1 introduced a mechanism to provide end-to-end
   cryptographic protection of e-mail message headers.  However, few
   implementations generate messages using this mechanism, and several
   legacy implementations have revealed rendering or security issues
   when handling such a message.

   This document updates the S/MIME specification to offer a different
   mechanism that provides the same cryptographic protections but with
   fewer downsides when handled by legacy clients.  Furthermore, it
   offers more explicit guidance for clients when generating or handling
   e-mail messages with cryptographic protection of message headers.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-lamps-header-protection-11'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-lamps-header-protection-11.txt' type='TXT'/>
</reference>


<reference anchor='I-D.draft-bre-openpgp-samples-01'>
   <front>
      <title>OpenPGP Example Keys and Certificates</title>
      <author fullname='Bjarni Rúnar Einarsson' initials='B. R.' surname='Einarsson'>
         <organization>Mailpile ehf</organization>
      </author>
      <author fullname='&quot;juga&quot;' initials='' surname='&quot;juga&quot;'>
         <organization>Independent</organization>
      </author>
      <author fullname='Daniel Kahn Gillmor' initials='D. K.' surname='Gillmor'>
         <organization>American Civil Liberties Union</organization>
      </author>
      <date day='20' month='December' year='2019'/>
      <abstract>
	 <t>   The OpenPGP development community benefits from sharing samples of
   signed or encrypted data.  This document facilitates such
   collaboration by defining a small set of OpenPGP certificates and
   keys for use when generating such samples.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-bre-openpgp-samples-01'/>
   <format target='https://www.ietf.org/archive/id/draft-bre-openpgp-samples-01.txt' type='TXT'/>
</reference>



<reference anchor='RFC9216' target='https://www.rfc-editor.org/info/rfc9216'>
<front>
<title>S/MIME Example Keys and Certificates</title>
<author fullname='D. K. Gillmor' initials='D. K.' role='editor' surname='Gillmor'><organization/></author>
<date month='April' year='2022'/>
<abstract><t>The S/MIME development community benefits from sharing samples of signed or encrypted data. This document facilitates such collaboration by defining a small set of X.509v3 certificates and keys for use when generating such samples.</t></abstract>
</front>
<seriesInfo name='RFC' value='9216'/>
<seriesInfo name='DOI' value='10.17487/RFC9216'/>
</reference>




    </references>


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

<t>FIXME: This document should contain examples of well-formed and malformed messages using cryptographic key material and certificates from <xref target="I-D.draft-bre-openpgp-samples-01"/> and <xref target="RFC9216"/>.</t>

<t>It may also include example renderings of these messages.</t>

<section anchor="document-history"><name>Document History</name>

<section anchor="substantive-changes-from-draft-ietf-04-to-draft-ietf-05"><name>Substantive changes from draft-ietf-...-04 to draft-ietf-...-05</name>

<t><list style="symbols">
  <t>Adopt and update text about Bcc from draft-ietf-lamps-header-protection</t>
  <t>Add section about the dangers of an implementation based on a network protocol proxy</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-03-to-draft-ietf-04"><name>Substantive changes from draft-ietf-...-03 to draft-ietf-...-04</name>

<t><list style="symbols">
  <t>Added reference to <spanx style="verb">multipart/oracle</spanx> attacks</t>
  <t>Clarified that "Structural Headers" are the same as RFC2045's "MIME Headers"</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-02-to-draft-ietf-03"><name>Substantive changes from draft-ietf-...-02 to draft-ietf-...-03</name>

<t><list style="symbols">
  <t>Added section about mixed recipients</t>
  <t>Noted SMIMEA and OPENPGPKEY DNS RR cert discovery mechanisms</t>
  <t>Added more notes about simplified mental models</t>
  <t>More clarification on one-status-per-message</t>
  <t>Added guidance to defend against EFAIL</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-01-to-draft-ietf-02"><name>Substantive changes from draft-ietf-...-01 to draft-ietf-...-02</name>

<t><list style="symbols">
  <t>Added definition of "user-facing" headers</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-00-to-draft-ietf-01"><name>Substantive changes from draft-ietf-...-00 to draft-ietf-...-01</name>

<t><list style="symbols">
  <t>Added section about distinguishing Main Body Parts and Attachments</t>
  <t>Updated document considerations section, including reference to auto-built editor's copy</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-dkg-01-to-draft-ietf-00"><name>Substantive changes from draft-dkg-...-01 to draft-ietf-...-00</name>

<t><list style="symbols">
  <t>WG adopted draft</t>
  <t>moved Document History and Document Considerations sections to end of appendix, to avoid section renumbering when removed</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-dkg-00-to-draft-dkg-01"><name>Substantive changes from draft-dkg-...-00 to draft-dkg-...-01</name>

<t><list style="symbols">
  <t>consideration of success/failure indicators for usability</t>
  <t>clarify extendedKeyUsage and keyUsage algorithm-specific details</t>
  <t>initial section on certificate management</t>
  <t>added more TODO items</t>
</list></t>

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


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA819SZMbV7beHr8iDS1UVQGAg6Qe2M+PLrHIVrVUIptFtlqh
ULgSQALILiATnZmoIh6DLxxe2H+gvfPCO4cjvPTKS/uf9C/x+c5wh8xEsdj9
7PBGYiUy73DuuWcexuPxoMmbdfYk+e0un6fFLEvKInlezMdNOab/Jc/HmzRf
J5fZbFflzX4wL2dFuqH351W6aMZ51izG63SzrcfZ44zfHS91pPHDrwaztMmW
ZbV/kuTFohwM8m31JGmqXd08fvjw1w8fD9IqS/FjM7gtq+tlVe62TxIecHCd
7enZ/ElyXjRZVWTN+AxzDurddJPXdV4Wb/ZbWsn58zcvBoO6SYv5v03XZUGP
9lk9uMmKXfZkkCQ66PC704tXl0N60PBnwx9owrxYJr/F73iO1dPzepvWm3+D
nU3Kaokf0mq2oh9WTbOtnzx4gPfwKL/JJvbaAzx4MK3K2zp7wCM8wJdVti2D
L5cE63Q6mZWbB/Pr5YMOyPDJmkBWN8FH9OZEP8zL7jc0zyDdNauywmbzon6S
nE2SbyfJb/P1elNW9FBO7Cwt8mydfJuuiuA3WvuT5HSTVfksLZJn+Q2d9nf5
NKuaPKuTtwWBmd6qmyrLaFGPHn+VfF2V6Ty5bCb0fEY48ST5PrtNfiRojpLv
f8TDck7TPXr48OGX/NeuaIABby9PAcvptMpuaMpn372lPzMBOu3x3yzyRbOi
bdT0rJjQeQN+JXAzm+cNLRYoVG3ShuCOrc5WVbnJxnkxp6XT7zUe0umm1RJL
NfBN1+Vywu/muw0f1eOHj3714OFXD7Kbcn1DGDCWkepxrVgejDlZNZu1jCv3
5Ll+lDzjjz6vE/sq8V8l/IWeivxhp/B8k6/3yeVslc1WhNb825yO/EmCZeHO
JMnzF6fn3/XvJlsQvCbzLFoSXqcHL18TUJ/3f3d7ezvZ1VmRv2MQzMpikVUZ
0Eee2iYef/FgW2X0qCE4l8WDvKa9hpMNn5V0HYtmLJdvs1s3+Tatmgdllc7W
WfIm3W4BHrrSZfKCzyt5yT/V9Iy2D3ISEphiVu23mGsYAk1hNjbgGfhepNOc
8PTcLYveab1ylm7wyqtyPs+mRZ5eH3jvTUlD1XQftlvC9gMv0SnndVNuV8ll
mjZ/KldpURx49TKbpnWDqel08+KfsvVgPB4TwtPlSWfNYKC7zmjXvOdyWaXb
VT5LtlXZZDPAoE4IxRO54QmhZJ0uCW64mfTOTT7PEjquxW7tkG4y+Ka8zW6y
apQ0qyxhKphWcxlHvsFpHJqPSFuWZO/odm8yQsvFOnuXT9fZZPBmRecmf+Zr
IDfWQPvYYgGE4Ck2kdK/k3pXbStGkwS4uSPswed5nRCv2G0IVZJyscA3RrF4
bbxDjJXQFumdfLNdZ3gbbzaYvciyeUJIRNRyW9JE9FGOnwk/mw6IbvNmlWQf
B/BkcN4YLGkXHpxYZXJTztLpjoj7PiHMuM3Wa/y/3i1pCjkeWk96U+ZzrGpD
8PNb5sPe5PP5OhsMPgPTqsr5jielo5flBgt0VGPHoLt8cHF+8Tw5ev/+X71+
8exXX3316MOHY4byq9++in774tFXv8Bv8Q79wYfIAngtMcuI7xVBFwSKzx0w
IiJAb9HDlI+Y9hZO9OXjX/0aE7VATTsNUY7wBzhEJHuf3KZ7PbuUON8sy5lQ
tk8aC9wAYews6WDT2YxXkq4JC4lBpNcYG9hlYFru0iqlT+jUjrLJcjJKfmK6
9/MxLei0Mwmvwk2Bk9b13xtTakZAPvF5mdT032yRFTUxnzWBk+C9x+bSNdEO
fidfMEVtAijIFsIhsfdplkz3JCHUhN7TPSC3XGOooywHPOnBOp/l5a6OAXPM
fzLC0Ye81ewdUa4cVPwwDOhfWQWR4m8CQb0qd+s5lpze4pjpjsimHDA8kAWx
QOwI6Uh4GDGS6Qh2iYEmBYkL5a6ZkmAwd2siZKSV3zB3JxzIeSKgFG8khiKB
u4LgUGByIq20+zf0yjXeL3EHhhdvL98MR/L/5PuX/O/Xz3//9vz18zP8+/Kb
0+++c/8Y6BuX37x8+92Z/5f/8tnLi4vn35/Jx/Q0iR4NhhenPw5lv8OXr96c
v/z+9Lsh2F0T0UFAkNY+DYBGR5nWA6JFs4qErjm++frZq//1Xx59mcgtfPzo
Ed1C/eNXj375Jf1xSzdZZisLgpX8CXANwMtS0ElCzDVh2zYnzMFJ8FHeFgku
LIHr5CdA5ucnyT9MZ9tHX/6jPsCGo4cGs+ghw6z7pPOxALHnUc80DprR8xak
4/We/hj9bXAPHhId/ix5k1WbvChJCtwPBiSQCDYR0yJ0rAWhgzMaEdUHcudF
xi8uyvW6vGUWWtI92zYkZQ7GycnF29OTJGeo0v0HQ7vA7XuL23eK2/cbOh8j
nbM1XVLCUvrulUPjE8xt2E8SIEgms0mwvOhCZk5EwpmToJXU+bJIG/CdUcjk
Y3oe0Hz5S751PIHX8yya6bt0n1Uno/bj5wXdyXKbdX95le7XpA2cCDaePK9A
o5O+QRn5BbCM5e/fR5scE90gZklb+vCB1nWanID7jiHwZ/OTFg8SAnZQplkR
tk9LeiM9uBFebudn2w1D5lIXlK6Tb7J0Tieje1BMsW3U7r3xSt778IEHAC6M
X6QzHM2dI4Bkjxf8YmuIC9C4r8v5npZWNYxwjL30R3IEAY/+UR8rywVx2W+J
wYOHEieicUSAwifCFuRzg2Le1Nl6kRwVZZMMU8h0SdoQPV1hccPjSUIibUbr
A6UdT2kVY8yHpdG9+izpAih5/1kPNJg16ZTyLFmQIjpnsXmeXEHmGP+B3qSz
uxqBy92uwCrwM9HKJam0cuBXpnpcARB8W3SHXUoLdjf0ixnqzCqZ5viZNJJ6
nG6m+XIHZsvTLXh2gub7909BfB9++RXRW4AUTAXCkWw1eYEd1EPhPLVtrDYd
kAQXUg5pTRARiNEJD6u32SxfEKLxSHyKzORwdAJ53s5IpesCB0PMgjhqUetm
aX2zcpvLtkuWFxgJGEKYh86dBAoSC2hmzEmy1DxVGV64tx0Grx3AKGbrHXEg
JmzxaeBBqO/FD3RZpMaRxk/zRb+e5TVR2LzhYRhfeu4DIUwf8g8GLxfMwLBa
g6wgedEmBZt0D8LXEI6OhB2mRACKOaT6+EqoXkugm+cknTbrfXg5JixCBKtx
E9MoBBpSRa8ud9M/0YdX/McLUv/lX29K+f+zmfz/jM5f/vU62673Y/v9BfOS
3ZYf8HSEGpCggI0QkNYkDyRr0jfp6n1vxxssg4WkXO71MFgq0PBl9DKgkpJA
OhPEuyFxm9Q6pQrYXIwKJlLTgtUsUF8xEl6dF2O3ifao23U6y1TBC6RLCB/0
OxCPYV3PdmytOx4l012A8cBudxL0Gg23bxMsCJCle/uO7QO9FM2J3pCQSQxa
UCYr0ikbH+iS8KCYAKjLuJks6BiTXaHsI5t7lZLe+2T10usMttaExC6/oR3g
z7paLRTLr0R17jrN5yOVePMNNNFlSRRWz4sHAbQL3iANAD10V5haRypoXYp0
SbAh1V506tp0gUZIZQYlBePEXwfSPnRcAsYtK3h0kWsxCwxe7Cog2qasshGB
FCtY59cssXulR5Z5m0MEpauZFzuWewmvYAtkMHThLVQPKGaKfw1I9x7NEVtJ
3qW4MiPoCmmyJL2hgNaZb3PVMoEyIAWE+Ac1nGPlCJssLYINALjuKE2bDnZG
2AAC70waI4Ddvt4HxyzcJFReoAHJYu3CME0nyaSqU5NfJoOvdwEo9WCUHxDN
qOhg1uCeIgmtynyWsb7oiRz/sitSnhZXIHH2UyAbRONLGF1YOhRyxPDGfEeY
meSkCtZMwz2CyTFOeVfoiRNogo0KAXt3P72SRdl9i5YzEK+zbAvEqtkgNBGR
fbZOK7VQGExGPMBHNVdSiDydN4CzdEBCBpAHMP3TrmYdno+03k2Zozr2iEu6
U6OVU1Y3xtyeRHa3vjcEpP5O+uura2TzWEJKCt13uTFVSfLGLW1p5QUK+RO+
C9ZaApoDm1S4TejX3a0G+yGVsOxuKlbkD+zLc5D77Sq1fY3oEEU1VSN5IBcd
RBmavtnVbWYV7UlEVAbLuFyMPVhIbuPdlax3NMAzmXHD5hT6YZ6t1ZDZM6nc
ELXbvWWb5w/QbdLkRbohPkNbee7MLxB88w28QuPdOxZ46Zeajiagr2C6N5mo
n+bRohObMyEmkYnVFjajlVtvCiYuOlupLJdXtJE6B/ublSQNkoBVzFlnFREO
r91m0/E0ZdPSbk3yBJH7aQm74EikpBkrqxultiRaN9iUQBbfwwYDWjJxNks1
3qbJgtCK2DQNaaZqsE4xB4moUu/rJsPYm5IuFN0sIjt7+k5UVWYULGS+neZ/
3rHn6AIvRpuphW+s0psskPbS+ZxeoZHpFqxFGIAFcl8WLD4p1QNZ4ceE4QAw
rk1nayNawItsDtrGaM4oLFSSiGtzm2WF2rjpge2XNAtoQbiUpawNS0iXFVgV
iJnZgyOGWhvrqNhU0GBjxkv5AAALXKNncuefeIoPQ6GtTEg5XxSBhsBZLccp
Xzq5IoQhxAtKPA+RIt015cbbfeWwlM44pMyZeaiaobYCktzoy/yfwE7K6npB
4qsTNfWwkyMcq5DObbmF8bwHrUCfDChE5ndEyQjbfyDeWJ9ut7yqS9g01smr
Kr/BuV3QtxkUmWOlJNNdvm7GhM/3YjDTPYwN6W7djJRyQogUplLxzXKgjtjY
ZHA0PFXNw4kb54Q77BjXNaoo7owtepfUrjJ2AstQRXsifMoFCJzV/hgEwiQ5
PVIvR8mp2mOCJMnReDG6YoSp4n1R0hjdSyJyazazsHoxGfywIpSmG8Tj3kOG
BT9xN4/e3JY5iMyMIehExCa9pmFxDej9Ilvi0Jh6xSvy199vNiTg52ZRdu9h
mpu8hB98HopfnaWP/BlCbGQubm4bvgY4MweiGH4sq83L4vNGrjMvuUpvp+ns
Wn/VxbI0dk54Y84pBUFT7Q+sLjJVYyTwVJW7F8Y8vO0+xAK2yLTFbH8YwnMd
qrAdfIkrB/k7ohayW7M/tggs0bATkY9PTEAWb+F8N7uDGwf7mgye9WGDV7ha
Tse9aIWgVPOSzhhokxfpnGgPrAW0/DXxT5EGWtYKu6Px/taEcLN9a2fCs39I
qwLTnzK3fyEOuuSmniSntOVdwcr95W5GXI4tVl2nP3Hwi/LGLCjEUoXVwZeO
lbBP3fiiOhBX8BIjhmKdqCSQcwAF7lLn5gUGXahFfEi09vOCbTn5DCcqyB2E
FBA4WJeg4x/ymrMhb2pINEL/ZOsVrVbCUOgbRu3ZCgahuRL6fEOX7kWoPu1J
LKNbtxThUalmiJ+3dKmwZ5EZZPck2kIthna4WKfLpSkcbmnByplBpMm6nF0n
+Yx9sAVHO4yEbbjlVmDekF0aVZr4iEDKy9sC5gE2y2B+L76AOop5A640iejh
g6JFD4FmtqAj0PCfOkEj7D/8miQGIuzlcj9ib0qsazPaLnJiEM6YcI87AvX4
c39VnW7I4o24tUrmK8KeHLM5waGdRC5r6IKpqp5sGnX3OhI22JdPDKnChF16
BAU6X64aBzZbxHVR3rZXMScSofRBqSMQggeJyMDg+xJ0f23qLx+oG0WiC/Q7
8XyFfFMMQkKq7vpmuyOCMoNxAwvpU4H4cA+oAWYfNxUJEnVw0QKnAh3MNPOe
3MngtJgfnNIZ3U9stSe2XJVGc1FyIWhl7xoFvozesmAQitesWPE/xXbGlnDg
PvFB4Og5X32QNFpHPSPtXMWY0O7dlOa8kkUZZjApbIeZdCwRch6QPH0wBnML
sH4bZVezMSGgD54LkEaF0DERBebEkefqyQ50vXBdInZ6JTKta9pH25AExYjZ
hyxW4clGvzd2MN6vRiS9Dw0gc8VmFzmPqagk8Khlc+gGSpzlD3YjyW+8I/8j
nQ79XgQChkpbg9/yLLyFTdfIoYyDvjzMXQPBxhmhYJQD3PmE8aLe2Mi0VHnk
6z3g0OyzgBPhQnThC+jCosTSwY9FQx6zhkyAe1PqyTUuqqBrhyfOvGMzO/N3
phr3ESSw1bIVJGH2v6k3XJuBqcpWCDtQQDSBzcokSScj7YowZKED3kKoMdE5
Viaxt7nzOcA6quMP6fkwjHlh3VYURP2YNwt3nBFUPDgmfK3LLeQCtt/MI7uD
4+bEr+YtyuKiROg2lLM8dca8tH2Yz2+UVS3KXcV2C7mlUJ23NCAIHX5m2apW
ey+MdBCvBEGCy4cHBQyEImeCuP/A2vb79wVOUTF/DCfLhw8wtRL7ybB8thaD
8Qb3f0Y0jK8jpNvo28DiG3MLCPF8nFuzUrc+5B0mc7EmOx+4xWCxHRVxqwsx
mJE0Uc7M2nmqup+CP1IAZ06IldAlZxBjsuNuOOn6Bh8BtdgyvH2a/voD0US+
WEcrVnJu0nU+D5eqJhOcT8rRQkL3WyauYxrqWahgHsE+zVp9QIEUKf7mOZi9
YXuk85eKP7yn5zZHAsnjLUzTuqvuMpzj8e9ZCAsRSvSh3qR0xeSwc9EVhiE0
SJZLIdYhdqxepbBXZO9m653EZjkjjnnKiQVtU+g9ilSR1HTsNGlxlpr7wGkp
LBwBXWpsCcxQeHsjAjsI4axUg4x4Sw5gu3ixQEOCa7Ley3Aqv/Tcs+MRgsiF
qLMlpTh8PJGBFEwQkGZHmdFROWkF6q6gO1qLcwBXxGxmiG8ToRc3UoxComsa
c1HTcCNm32BB0/4FdYIQyt1yBSs/VIvgBhFFyCFREHOUMdQxBROf80EpJXZ+
GresOLoh8hXIjOyxsjgnUiHTazFKs3gmBmyP1941Ciobgb1/l8dAsHo3rbM/
7wAkWtcaKqCerXoEiuUYP+BkE47kYWVRXjZBvuOn9/cjDVYcRcMwKW/fQB9u
BfLmANUNCyFJQYIVRBinqYrwXGwPbuSxxb3SNvQi8HL2ppi7S9GDSqZ/RCg1
vGQpayhBdA7WQ6yurOj8lmXhKK8cVkd6VaFxBg4tx0nYBBzPgrtv/C8wL3xe
R8xZpKSXRBjj8KBL8Ua8oi1cyJSDwSU4GO1PXe4N7XjLMoDFXWqEPHyQiNuQ
pevC2+4vPkgfSOo+WIjHxf/SqwJFGkW53RLUiMyx+LFmhVCMDjhkHBeJ72NP
76ZpncMZ6kN16FywcoR1Cx2HLdOkisBG3+M9UVyFw0AEJX49NLKy5CIxnsYU
Ytd4oIapQyZz96INoVFMu9v3R45GCJ7zVh6xFuj3L8qA+hUKofpeaTGLOWYj
IMHnFEDb7J0a5yBBXZv8HdFwvyh1R0k0QC4y3rJMbquyWJqXMxBwc43g47sT
XGMWq+5EKkf/2MIp2qZiv0Obe5nQ0wUteJ7NdXURRt3xmdOL2fiyY9kypjdH
EpzN5xa86xdFPM+MAjBe5fVGjUgcLYFlhCa0I4nV+uLxw18qURVnjfrBQLM4
vFpe+8UXv+TweeCE6OoEoFRzHtiVFe2zrV4FpMgrIH2G3yikN1LSJ70a1d3T
btK5V4ZCWLIU7xTj7T4KxRlxHL6xeEYlvolim1/u8nqlVhuhbE5g0+8/v8PQ
ZV5Si1PYlo3KqrDw7PgisGDFQe7ebSzIL2R4lKz20woci4mGXVM6llvAmccl
lrYTMWM+Z3c6zYDbuc7mhOTLlB0dbDQJ47imRH0XqvPcAdnZDE7wI0aZ4vPm
WC6/SbQM73zdCjzQYPNAO08htSxxGcGaR6ppaBQfDNSzxsyh7IL7FL93rwrf
4kscTagcyUVlwid9KMJ2wP4MNvCoxGECsHvHxKFYyYf1rIZXF5hzxJZSUG/a
veSqhASWf3VZIMfCfj/u3dd4nFq5mpuOCBdrixwpU4RmLSapOJ+8uHYuflmv
246w9J645LoDJkShVQSiYc/bwyBGOxW4Q+BzQJPLtNuK4CfrPUwoS6d/A6lt
NGRaChK7n/QpxGCgfmGBvEMvoEHRGZpgzYr+roLY0/Ct0khf2BR8xl5ScjSj
iG/CwlJaJzsX1+XtKPmH3T/+9T/81394sPtHF4VSJ8N5xlvC+jXlAe/9x//W
fm9X3NKm+TULGJY8pr5TEBajL/ykGVA/hwlGbOLg0AVsr2+MMBlRzXnJq2+f
XX72S7XgjRFlL89+SXdPQsHjp4iYfx79Imt3i79w0BN5tW8lMKRt8g3dHXt5
LAsgrEK64F//8pe//uW///U//Y/2en/D+FHOyvW/HgYe8wfb61n9y7ETviVR
kob5z3/9y7+jYX6K0eBn+/kv8vMdI8mbcuN4e4z8LuSjmzIWJA9EYBHoBWC+
Ey5+Ffp2CJj+JeO73yTyOcSYfz0MPjeA/Mf/lhx5tDtuwaEfTP9im48R6h77
jz/4W0AQj2BQ+A//NTkKLunfB4ZWTknvzruX5h67F/j+vRDoTv23QuGeAOgg
glfNr+LtXEHivOO8Nb3zqruFzpc9sKKvWf2SpcHt3OF5PDxHQ5mRgTPr6e1a
+Aubp0yZmmWR4ay5LTm6ON+uMrU2kBaZqW9eZSDVf+pu/gUPrYkFHcC4OPBE
4k9T75JiQAr8nb+uF0Ia52H4KIj4jBUoVcJq1pd6UVFW3xKiTH7ak1D0Ljl6
dnF5HCYKM2bMgglklUdXITra74aLV8ecehelPYmugjy+idrXzTARj4y4U1J/
ClXfU8kXAe+7uLTQ61ZQfP+9M1v3wZw3Zc8u0fgwg3av/KSJyD8HHBoocyeD
HjldLI2CINwh2uiX+lrfbo7aTPOYCMt2uf2XZbjL7b8Muw3HuSe/6SMyMXh8
yYSPQchZM/uB5H4+DCf3SgsI7V123uuBRkkwa6CGZOlGayccINOfQqdhSNFY
Y44+Yw9Gm2of3eQpXY/L/WaTNZVeKW/QPQPPepXOrrNmlIip81IVkK8mvwQ+
49Z++atfPfzw4TdqlHF2ZGfp40uFG2AuqgPU87hngdGJf2y55+7FVw46wRaS
o8vn56/OjrtbefQF9uK2cqxe7E7iaFg3AG7RCDfhIy2XGRtojqZG5tU38XKb
FYSoEinJXEjXBKVazVCyuj6VzKh8H4G23ywJco0KJxw9TCuTFD6t4tCr5vXq
s6RcVmzidBG2pD0i7I7GZRRjJ4q3V7nXwqS4dni6KFtsFl/c82Wj5b0E3Lur
fRplWncDCIzLTqC7OqAMzfjHTCg3C8RNFuhqsr/FAf5hSafRRRR4ipXu0Jrl
gtYeW5jJ5agCYBaT/iOOxCpeV1EW4961QUW+oQuIiDBCzN6jD1Dv0DgnaoQ8
cZtrDiIgC0+SwnY439m5fTJ+ZdxjY1DfSSuAipGwirP0esdn2QmRWt4a3jY1
bKWK04S936wtAZPGXR9XHg7Dzp/QFSZfaRSMM9NcOo9QNKqmB7fWrJnVffda
f2rlEArOSdDdoUPTeLCOFYSeB0d+EMU+C8KHDpGhzyxc5tA4tY+aiY/YbiPn
P4fmYL58I3N+dBYvdJj9iroBM4W5ZFEOnhW6cZBgIH4SmHyS1yc9YFCgexoV
8GkOY6kjH1YaexVyza/3iMSJmmpzgY/19EdvUhTwiXnL6SZsan7//i6Z5APM
ullR79RurJfjJ2VfPwcM8SLwhCrUrg5JHlcCGM0Z5qx3P6QadWy8I0FC2OAk
KSc2639k/SpXs8lIZJXDOLRxL92BRxICaJ5wyzJlmHYwwbFL1g/qRsmJcxyt
PW1MtPCMKvWhnD+K/FySmiABR1YWwx3pE5EhT/9+E8bXh+TCZ3+viejskJXo
+d0yJ2dQcKQ8b5nTV7yTRbmjUtu7mYeWwajyGxrd+VtqhFLWydUp6cZXz64m
TDLomrsaE3dTmA8jf2Jhpo2wFXXTWu6LKrKKN0xYblDQEBjl5Js67TNdO37C
qXGO9zV9RvW7+N5gcLYz9BVX0UiqHmVS/gGVP3KWmegnOA8J/ZghjgJKFCT+
HxBcjFaBXt6HrV/KuTr1GzEfBxk8zuiu3yOnLVKt8umucb4772BDVD7X6ul6
0RFLGpZMm2fp2gmrd4keGj+44AJLjEB6GiZ3GGWic8eA3xF9SH6otHIfESN5
PkYpgvGtPv+gwQ76I9cpSOpy0XCUJfsVq4zfRnKPL96SxIIDLWyBlEx6V11H
miOBDMOSUL4aBaEHljXTJTfQbQpxLbb9/iLkKz36pk+rZec8/3yuOm2fdYBf
+B1e+PdO74Uy92C7JqTjX7/VX++l+38X0JhgHHG/cA66EpSr766cBMQgAXy8
mzM8gUmSXJ1fCZbffhRjW3F2LXXiEMVqIFq7CPRWTSbNgZLMob6ifDyTO7ZR
FG/HtuJc0l541xxEIzWsDseMcUkCvc9Xv7uy6K6EA3qZ2t1HJm5l2+RB9PA0
I8n6JoxDD+RSE3Ngw9QiA6E/Hbtguk4r84qbVLXkBdPvuJ8Z19GQiEWhb5rL
L8qi4XJ8eUZSG8+4sMYuBSH1+MybEdq6u1770+TrtCr/TCT4uTL2959N5clY
WT1d9mdWwKJVNy6+jyBf7M3XIOe2OHDxcaPS9/c2K728r2Hp1UHT0u/vMgfy
G6+dnesQzbiUN/793YTjjXvrIPV4G75yLxLyB/dFl47gpx/uaYpkPeyLA4pl
0ZJwWGapShNHpN7Q1QVkld9fiYXo6vLKh4IcoCMty4fKpbX4CnyUvolRB4Uk
nXhyty7ZurVCYV7TV6/4X5dX9+Hwd9BLLTB2YK8nBJSTjw5/kKD64MGIlPKx
9N622ofUhaU3YafkeqBpVWctSqywRrCvOhMyySPdhAqGBO5I+g1nRUSZORhb
AoyCqJZDJJfjFRn4b654F6lW75KHf7ji0BZTvZ75AhqDOCTEVDBhkDmkoqjc
Rq+l7/71YU8DDOWalfOAj7F1F5gAC6HPwkWNhuyGrXm9NV5RwkfF5p79Jafr
ZUnvrTYIRvHPP7Q2XoHLwWUXAaBusq2ruhrU32Ae66vntuI0YVH2ieqxei+p
C3JwB2yMfOm3zojwJrrXfmOp2xjyg7FKhLHQeZN6gVxqKTlGryxRXu5K6h80
VeoivXqq/yR4VVPIAylTzLUY/kjx1zLCzdYoPoMsFSw8Rvny04OjjIJl0TaQ
kLdnwPiacq7YloUwW5B0T0HA44ltVB/pXlnLgWgHG1fP0Oa7c/w/jOEWzxuX
sssl4vnqaDW6OYaFI6+4WAbeuFoJresW3xPSfeOEzSDhiMPueNGCALTeN54G
I8Dozrgm9t3GEcmsjQcapuRvoGarT+JWbeCPk68e/jrK5fmjGsFVHuh9qU7+
yBv6cchn6wv90b1ppJ4n7siMq3iaR5cxhvMLt0S+jg5ayo4JmmIx4FPDy6qb
cEz0tgLYDnADYZG0210lOY+q4IAxRIugddLAep/83bEvdckStuW0W0FNKyv7
J7krXH3ddAUtesCX7ZRPxg6V3esOz0fJHqjBjMMt60oWhdp+nDWOsGlFJIdC
EqNpyEdwiTF9gDrup/O5fQeEBLLqyIITOsYNJnrNG/ZTs7nBOz1f7hpIpqPA
yXTOsirbYtv26MFAqveIlMxOwl5jZl+Wp4JVfzrJeZYTjd209cjxciEMFyoO
VkkS9Q6x7oNXu6Yxkd3nZshgrbGYxMCRns5vCD3A+vnY3qysiFEdagYyktZC
jjOrLViYpStFBtZ3uJ78ls09NJIKyMz56JAAHGCMD7QOSklvyjkM060ionFB
sCBNtb+mt183Z+W1wtu9xbnotS57fs6krbEolgCsfI16QCvs95SLt7+0lApn
QpZcrQsTt95/1k3FUjOgLlH9nSJmBAm7OEAr4CQyEed5usCIe4XehxW9LNNM
oknTGq4ulxLC+cX3KOmSIyW32ix26ycWEyq2t3beG9cHsgRljaKW+TUHQhbg
AjkiPJBSGEeHQxnU+lnnHHF/zDp0gPw0hpqiAyG0U+uv8TkjcZaeBgIHPCJl
o5TZhzg3QDMYUfy1NXRvuHMa27uMYji+LShvNQpqKeAK6UlKFmibmOMeEBKo
ooYAH6/efAiOTpPYFVJj7TYQ0nm6JLeM/4/Kxa24BJyQy/AMzzWuJD047U00
0GJ+da9w6DOPLWC+LqX6RpDu6O6VJrtKqcO7BBBWZ5SkOEzmKnDs2BQRVCsm
Mm0tyvtcoSi5V4kRyEI3VbePkbRyXJFnYkUbvfRjZLr2+flRznjoCohS9M3l
ahmGBCcu2uqUDadWuOxDJWb8h9lgvZQpARDIavN1+xOOHqDFcOcn40I8gGzL
edT+vGNTAce9OO0dEgE70pwDGSiDfcs1dzgDTQEYMCN0c8SQqfY6MH19PG/T
mzF4jd7V2V4JJ6F2q/Nk85HfoSnTHPQjNErjjAQ8HhTtCxXKCRxsI3vxQTP3
hBboh7Ae4jZ8NIrjlp/r3OXCfZ5Eyl8IIAWHycdMLHaBiBQWO8iN7+TVbLdB
ZsfM59sFcFFD6F3zRTWHMABnhbq0O/VScQbriCgZrQWVDkcBAMcmt4SaAZO1
iMzr1mCbUP/XdkuoPhc/ckiBmNhoYZ10zpk8qJ3puaETo3kP7JzapIXUuSAi
AS7Sb/Jotaoob1qSiJn8Q7gKVNxFDUUj0gzzLf98X2yRqBKfMkWLhhtJJBLL
TEaF43Stqq+vexxc5og7g/wwIBi3xaPkfxcq5EjOeVRNdDA4o7ueN3JTpojb
ypBeKE6bjsNP2Lu2QuCEx17XQqi536siU2QZ07RU0gxvcqlU6QsUx4UpeDIP
qXuZkWLTTbsDEpuxAm8eayDhdqQWcuds9FgOBMeqiem1S7b7ITRteNk2mCiq
zp/X0Rr4euRmDzqo2/YrzKYV3eWonAz8UmM7TOhvIV0EVIJ+uU0rszbFNk41
eWVQIq34UL3bbNIq/6fso0bJwzZr2YTWJk/CVMnQO8XGUSkzNuKriormY62v
uQ4C5vDF2/OO68lUM/9KwnmT3vza3YHsrl3S3welQmvdluUi5VKjornJv+GG
Av+6RSCeLZLJqroXBbThIVhVwlNWq3w6eO+SRrF6KHFKvkSUa0zhfXoHjS5m
l2KLXzdN8EBgHL21oUnhv1PyqUmlbmq3/3Ykwx2BDC504dwKC5Qb7m4V+ASg
jd0xmJX0U8LYovEkNYqQCgZq0Tkio/nc2XuiQZyu+pnfo0XWaxrED/H4LU/f
ne6LxGr0aYLEYZ2Pg5l9x5rjGEF6MIOd+mguYHuOp5f4DGdI5JuTsx65RnqD
pqt7ta7tvgydIHHQ0iGH39fiEOx42559LHjgLA4eyDe0jAd/2mZLCzq6v+fv
xYHggcsu/FxOkFl+8vqT9tnnWDwLfmpt49DKzp0ATuLWLjVTWdvk4wqcW4mO
XgQ/7Im39Ijn72DYZck3imt5wREUtcvaFoW4FcfXH/HywRosIBG5kPiDwqUh
Y6+uhoFoB6c/wqDGtqfSKqvm2o2Gm7+QJJbZOr1GwmVR4RAhitIXdTBDd1Kh
uy17RMs4Yrz6Cjsfn59dqcn1WO0H9nsrY5kFZBZ/NdyEtUG18YhlrI8C9Nef
cuWd/+8E4LSC80ZWyCGtpjlJCoQqYSL1zx+L0kEE54jjBz/cEa3zk0Um+W4y
HtN/HgzQsPRTNvu357jKTvpCGH8Xb/IgnIo7QfUpu35jfecc8ru7HIpH3n+e
14pWfR7HKeK5+OodiHQKtCa6wcHEkHnikhYuburIIouOvbbUSmTQV35Hr7TY
Ldh50DMjbOQU2LBRJ0jrBc5Lt090Z1qYXi5guA2bRN7k2W279IG4BIfhpof8
opUwXwmr7fS9MCIJYx3a/IWhY4qYLfnKa6hPuIblfZD3d4dz4O51Cz/tQgks
RBH8vGYwDA0Ofo+H4SCw+hQ4KGL+ZH4WRhhGjvOfFQAfv10H9h/KYIEnS8Ww
08KVyPIq6KcLYwcylo+8jq58wG5O3usKQtilOSHF9Gr5AIFzB65uMVew2u5q
lUTXmgPyVJ1g6661LdJ77OQCkwd0CU6u67nzUsctuvt9UoQPsL2vPCGKitgC
1XRlIcFFWL5l1ip5XrJLQU+ADfxHcOYHqZcSMNVuYlJJeFNPK8Nuzn1UDp6p
VHBYd2JGC1QIkZN96wDoJeJMqSwbuML9IQZ7H2dQ4myTVdK9qAYnY0nHpXop
zu6DHnX9hV4UacOW1CjqU+squT8YSTiLfN1Ix47kiK16rhAKdwEenz0/lhZ6
163SS9olWFuJjUFr6Ierdt/yqwNfS0/1n03IfB3Zyy/6L2j7gpMSeYfZrOUZ
EBcmuHQt2Z97ifOw5PyQPc377fcfW8+krfh5JAmK8xsnb1+U6IaMpGJSvoh6
J3EUqhR39Ggm3Wx0RlvCLHBZqCsh3IgPRyr2oSlyLahtlRkFqChlGpim3SBK
W6YZ14fXlUTu+zDXouMpuedSDea6lllXZe2hWkbveHsHP1Q7QOB4ViswTN+N
ZhaITVgvlThSHGtlAqWeVbrsrrNBkJ9seahCPc0NP49BOdKKlXhUlLEnfH94
US6C/B4XXi6KVG676z5r0UkkTsSuiXzRgwK+l6Z3S6DqVxj0na1pOczmpBid
50Q81nFonneACfiP1LpgHkiQq6DqOZHT3wK9IRaJbYWTvyeO0VN74cLVv+uE
AAipMLGjzeVcOESE6ol2PcmscgStGsqqKnK8AO7KTRwyctgElHOI7O7zAg1m
hoHPwOGaOQ5whL/4EoSuhJ/8aHh6+ez8fJwyE5sP27npv4gT0wPUlJQgn9gX
BMinvpGqEeizkmDZJH+ATgry5QDrYoVqvc9O0mq1KgnBZzWDa+6BmGv18Fb+
f8ARb2xaoEGgJIh7ns6SQFgslV77OsSxvkQw55aYWt9d6WkrJJsNEzdmLot0
Epa0JKSXmIaq87j2WUTHlRimCBuILSmX1/kWQD+vuQmPh+GZCxZKGITOet8H
0luzLKSVCY/+8nHih4gTbcSLNUq6OWuO3Ssj4ZC/d4kpZ+La85VLHV/LvYFF
j6kOQp4CuBa2R79G77sJA32sgnC9L4AY8C/A+I+Y1iYLG/uW7ipICFZEBqTm
2D1kKp/J+0mi1bdZtg1SFV3otMl2bA2qtceSGJbuGvBvkNKMeB+U1g5Q9fAW
K771IuCtIKCIP5/Aoj963newafwAON2BLPfm1CNXlUnvvvMN3sfP+i/LSQni
L8S7FvoJGVyH9GVWWp0TpKcns2eIvrX1wk3ic2cd40hdgKtJkXHTb+TqP7EP
H1SL2a8eP76yqq5fffH4sRZ/PfDBcl1O03XwwVdfSf2F19mS1sTxYIr0h735
rESEJTLFoRO7ggI3DzzvnU0zeKR4F9TC23YVn6BEwR0+Li2c+/G8Vvu1uw4r
vHuX/8uCTXcVR7OGZFbKL+x9Y729K/gR9dvpn9w5FcWba0pNdO+gCK/T5oAH
1zeTPbRB5yP66LftM+xfF/Ejdch2BK7YD9dXRvkwKKb7j2ACqyjrEnTNdZSz
hUmnE+tiD4jnd80lYG93mGdXMSIbREdQiUI8auGRl+63zsjWWqbVlKPWmOxW
1XhEHRwSWXE9FtL80JcruE33tYSMhX5/rXFdsyjE/gv6Lgsr4LtmfVlLjY3d
z/6DeT7XjjBsc7YoqRaxdn1xl2GCthiIdQ1n355fhJLkUUvgnTxSkVcrUveF
Qztsi7XM7jbROpYb3aLVW4VaSK717W7KHZikqovmXbEVLxyTwztDmdULV6dh
K3WV7+q4PgzBYnwwPjsKzbYWBbrH7rHwF8grcMlmMCQEZ9gtRRIEiEHSmmie
ure1A3fMTRejGadMyIpK32DKzPEI8OvsgBWndiaV+sCOxGdBR4QDqjnpJx6g
yjjwCr3WdzXnI7RJE1r15IhdOMomy4k07Uutq8I855JXLjVEdCPuGzxnOoIo
mvQaWTWjBN+PkkcPH385nhIQX1+eHvdtyH8ahtVpt+lOpI1THiVeT5ooNqXt
NBxCO2DN22iA9aI3zzU0jk/7TIMCrdEDmhl6A1X8Kkb4lOEDrbgdj+uTt0MZ
W3yvnIVk2jijB8QXZOGcrpvvgcj4DIW/UNT48WN+JE38JOOF0GW2yupur2Nf
vuHqBQnoT65YuLlkivDk6vgTIcc2vbreib4IUsCb4trmYdN7654FC5LqqdxO
kDB24for7V02i7ln2m2azcvgUiIILqJdBGHigVHdrSHcD8pQF0sXa3Vgsu4l
axc2a/wVYRrAaLOBHqC1KEArWS1YQFv2VhttcNN1EzBZbDdb2SDbcJvWtbUR
Q1wwXdda2xz6otztPi11mxiB87mI9aDFHFMy+AUz19x3AKM0QMpqDzMgM0sj
07nuZq2EdlhnwbEkYM3h8F0hVf3s8V9kSZT2o1FymUb+rdAqOoqBzBFqhjoR
rpI7B1Yg7MGCTrXvGddPd6nBUQG33jgxzayFrv01QsU4xZvLmBRjxI6NMYyF
vHdzIPLam/UccLK4Z4W74F5hwblw4hV8k6qoWyOiNDlCDL26NXfp+rhfTw8q
wLYcUYoRrlBPxlntdcblYlpOGoEShyGKs8b8Z45H9u5Jo+uGMeCGHfdAmBkQ
ICN4FWTeP5VThx0xswDDl3Jme7EIOYMWjK+86mNbRbwIQh2DM3YjMpgQRAig
VQp5z6iQT1Zs4ei6LDlhQJpkcOpvUc5bWc6yCbMqWtesK5zblTLhK++bFirM
f6+azfrqWE0pTGCd6nlGd0HthU9U/UXCBjLc/WJ1F6wiopxGWPJuRmjBBy7t
7L276op3EFSidOFEvGrv1kq1mxfJElfaAjwAW3roVR2eDetYQ4UWDy7ErIbK
4FrPSeYBl44WwUmRi9u3yQ4Y3KF5meEbcZzYCe2RToxK670TQaF+tWIqUt8h
RurQcCpEGnZ39bMqFTm08aDVutuErEZyDrCfSTu00DUfJ8lkjeDH9d6vIkKb
YC4lBZDsAkyKyk1oAdldAX5I3yOo0hdYALhQSTbPam0yUixI/6tcCZjOVbwj
t8DqR6v4YAqX0BTrkdoK221fV980OUwHpJE20uMOFJLtyx0znSMsYHSSxuAC
YxGjnVrDqmm2SoksijE25co5vgaFUZkDJCZVVQShNcVQnj5RDm2/yX4NKc0B
FvTEsWI787wp0WWmLNeuLiEJUyWChIQx+I/bWQt6k8KybIE8RLICA4xTIu69
kZEeyd7Y57YCf9z49QQlJS2uypg4C4EaMUtqZb5W472OobszyznuNxKDuQoG
DmzXsNW+X5XUeEffrMfSYW1n0tooxiQRRKIz5dsokoZ8Nd0HBYicwmhZ/kzW
I+TXzF9HhmGT8ES5jlIgwqpyzOtUjTYL/zzkuM4K59JBuUxbeVtIFRqQigY9
6znaU8vLSbyyxZXCYyaONdry0K9KW6uE78XHuBI37kdZjhsnDb3zEf3nEC9h
bP4hSf3Y7pVBwyreuVA/Ox4/blp7ay/mZu10i6jWJgCETG/fSMMlox72NNYy
78NWBYE/tdrLiDHVj5ScwPZ4IqI426/n9xA+JSMgGMXJKmEm+oEsmaaHcmLn
YTaMmo7CtB22F/nmg9KlvVKp2dLwfAKTNCZF7YZ4mYiyF2+AWSD767047A1L
KlUlUS0mM9IgVWVToWi+bkFw1YxEcT7bFoKEBPpLP236gysfZ76prCt31g16
9AkGTgaY6Iy+fmDH5E47yN9104ddi0ER+LiMUuBEF1rAqMmWHe2TLhptvZvN
0AeMt0BfulfzIFBGarHpF3LEvkqJLsktQssxQ4JpWo1X22lHrabYpCCqMsTt
WbAKrfFWRxXdVPfqL+yW37oSIGGixD//8z8PLj5WgHXQW3nt+48WbpX+A+24
5pf91dokJvXVgUJtgaQ1+H1Yqq2VoPC6t5YaZLHBZVRGTfIdtsWSQcAFxOrk
gk/0e1/T/LAHZmLf/J6/ec0sgzP+WrxPMgKkuxSQ4B7EvdEcvbxFeyfBSGp/
6RvNEgRM/Xdd/OCQM6cCyIfgbXeehJuGI/zCY5fUMseb1lH4/1M8CjHFY1ML
TX6f9H+sDFLQqPWlR6KDWBTHtW4jnGKPWpNrM/qPINUrRaojrz0i1Nxpu858
wuTfWslZLbaXXqjsIuMrh4ksA6kQxpVuSsslCLi9qgY2xTrdg4TXuyWM1t4Y
l2vJPwJghiI3rsjVN28uvktYQ/VajLOURIpX3vRrJhAbN0bQlGnzqMFJSwPF
wMx4kRb0CSPz+8+gb5HQbk+6jiounGYKK3tGfJgdFDWugNCWeaMqVWHv+c+F
6aYzdqwc1dIvCIwe/+/9bJs5F2vehEFEctBC/l9lqDYefv7+M3w4DoekzV2g
0EM0jXWZvnPP0s+31rK/0yweQuy2aj023SoPE5tEcWsvnX6qnEeO5fa47p90
2KWXtdCLHFPbbKzTyCI4VF3l7sz17nRbQP/OVmC7eRP76ostrAAWxhrR1Z2t
ePqNCNk1hxAS3SxFL9mIYBuouz11KjQSEGeVnOnce9E6z80pHaRu8yHaGvdj
81ujVODLs5dPvCNbOx/6CL1MHBoqBU13nJwGQSjcodyZDTdZd75TKVeSseqV
aVrb/KnNuC1zEUxOSQmWOJnQiO/W6sW0zpfWNCbbTDMudBwOwDoBt5BB1nZZ
p2v7XmtI+oFJBIMdBnQskHitAI6YtgN42wxnbGkqubJdB8Ljuf66/9Du9r2y
kDpnkGFbOKyOyW7LSNKBbpq48Sa2DyauYaKRFPZjyiFYOA9WOB4n352dvnLw
30jVhOSHb88YQQ2Y4cydly8h3Z0y1r589fx7ev/b5z8mZ99fJq9f19oOrEVC
kktGb3wd0JJxbU8/dK07Pejuo6ukdy6nksi16ZT1aLXoNlt2YC2Mamq8cUPp
je+UCVEz5RyGlkJA3XZc2eoU9/ksjSzBKMqR7daGNTpc7bYnFgta6Qm9fuJC
ilDcUOJBuLmqNHXOGqckhWtlR9I0s1ooEo0gjk9Wkpzr9LyRd63Cf7/jsWo7
Hl3OjkWasg9SXF4BaAL/Gqtxrh7hy/Mzl6zrl02s7PLVt+e+Sa0Sf4695GiT
3mNLnILiQsaOBFeZONNc9TEXEHx9eap25+ts/5bVFtOKzNs4RDVJGpxjh9mK
ksDzXWcNj/D8WfJKynJ9C//4PcZKlyTI9A509s3fOgDObSGtv4nUfWuf566O
qFjAXHuSBqJc3YSeF2/9AnieGBK37BrPW1M4ekPT8xHWMUR45dfBetKpLIed
gHohpJiOoye32qHJ96MPr8Qmyxq7NcpFCIMQGx/dR3fFnyptXmUz57d5Teiu
TmKVzir3xHE9FQ0gGDwQY1KZzDAKD9EmxIkfwbGiKr9BgAWBnV5ENqDsLCDK
qD7F9IoukXF2W6ibIRi65t0k35VoztkSxdZ42JbFTDJh/clRR3bDCi8I7ZEx
6fF1W50mb+ZqpW8iYFokupdZpeRTFogGFtKhPndXpdVlNfTNpuXu6D2VIco6
XqOy3d9mUgozjTiLibYo1NkHHWIyzW77oc3ETp8hrh+crMPfnEEeLGFhwUki
w7CFR7mk+1CdIa7+ZN/GeV1rrcXnw/+5oGzvBxpYnRDkqx077UkrqSRldG/q
0jSt845SEGxeIdfBI9bX6IZz9FkItPHG/xCglV7g27QqvAwONH6QLxwbCnSS
SAbLmjA1TCN7O8W6+mp1dcRobSnY/diHCR781mqUlosQWB1WDPuZONBk7KQu
kTcYkqw6GeLh8Onx/YZ0u/e8shWuc8cldLfv06ZStu5Icu0qEX7KKK5HTtFl
OvygDuggNCv+0jj3vHRJJIhFAfYEfVk4F0kiUZ6S9KchHI7rzxoplXYyL09E
qKUjWeTvzHRcWwBOI507ItZyN01vY6inu4JfUgKTU/JzTkY8KitN6EfASTbn
es3hCC4g6tjb70U1dBKXtINb5dIn51lLtH9p3rBAXdMWNx1SzzsUgIWjeI1L
86Tlpsnpdbxt1jJQLAKAvFNeocQ9xaVmsuDKtUZ3Wr/2Zm41zlsS09x9fncJ
vqP62A3WjqN2Fv8gp3qcvCx6dQPW6U2Q8PX8RCjvWYPjui78xELMXEegI64H
y28PJSOEEHJ4/JQWcQgRpOrciq+ME120+R60Fc5zlUaj6Inh8CbPlOOHNPrU
/2jiS/D+h/Datc5eVRmeog9N80Cra30qdolof89OD75dr9jcqCoTf8r0S2AJ
iX62VmBKROltNk2mVXmLkpEEyVO5vxw6LUFJquZIvjJx+lO+sdpdDpfTmB2N
9JStceKNeJU3CwK5qFLofJWtuR4O5+TSC+OtvtBujLDKl6s17IEcAp7dJkN7
c8hjLf1Ykg9TWlafEhmX3IE0EPwbKfGSEffi/I8Xz5/IsbuaxEFhRSwNtVgR
/F8wH82JxL6zBO06QwngQOkJqvnRu2zC4ned2NVyTDmxwkX+/3kHlqYuIDrj
1LiClKAjHW6d2ZOmrCR9y0W4PWAlJVjCTHJzPBnQ+y8jpEvSYJbM1fo8ZnI9
UIK+fkCMhuOZ5Pxxxc64Umw4V7nVupM4/suMjb/rOWpgcHJ9ygkm/DwgopU8
R78wEm70eY+5IQgmMQnXm/oACk6ULbedcmm11Pr0Eaa8Aubusrwk7M6qtae1
9wlXVYInoJpYOafAR9pvAsFapMxGVCaVD1aDI8EWJT+hkZrWtavWdGAN1ipt
p3VpRNJ3rj6poc7JvFtGmVkWFcsO1g2pISwb3+2w5nbCflD294QxuhMuiuNK
2HNxkVKCNbQ6TruogNl2+CTkdtKxeZ7kSpq1GujJsQatUg8coJqSUx9npxBk
7yoHcEo5hTGDM5yBIxSC7mNxgRCI15VEETlNXUpMC/3k7hApR3j7nK2gv44e
rJwan6VZEi2tV9bZB3gm00Hf3iqdZ+ViIZ7353awt6X5VLr1hsoi6znkIz4m
c8T0nIqWkQm+tlUCa7qf33FGcjzeFW7w4poFPYgSjxUMYXET0z3pi3R7xvjH
HXgTeNPD0sFJci5D49it74F+Ax7ClmwJHeVQKLZMalqTtx5qZpVmxaHV4W6K
KBjev+zAl6k2anjx5pV26pDa4dKvIm+cFArciMp0yqqxaDrwSyNwrpxLvyut
B3YO+kH8cpXX19JNLjaBMN6QII3Dl8DOyGAQnoijTmoBbXpICKaOqttoQI7l
Q2ubyJg+mW2EKQ+9oamGq3ainwtWk+WrsqEyOYdrZOs6jr52y2SmgQ0nuy16
L8k6JtxDJW4JHNIza7h1B7f5PMxYosWw9AEGD1BcWl6ZKpfBm97LoUEqgUBl
3V/FmbvaT6t8HnwghcWsoAyH9fgFcPsoxVTjBmni3x0GS3QVuMSdMj/EQSxL
IkmCCocMEyO+bkiXkahhf65tdPBKK/n/MpBgXKQQkMLiAaMXNDtBvg8vUOh/
9dvVg9BIt4BtsaWdi9PPUtFk5ZCPcADTdHa92x6zb4Ako3olwfpuC7Xveynq
KJcqFSchmAo7IyUX0xyR7uZEAttvJJxP6u3gDjIGL8VUHN7EzUi0alYLA+BF
o7mLv1JjVCTYFjWJJBzeLazLVQgQ5R6TRRGYrbvPnTGzLnLsCk62zhuLg63b
RkcAkHPqg7vRanBQHOj+nXw9m6Gd5Ww2vkmrPJX4zns4psLS2pHNPeiNopYe
6zBOU11FTbWCPDAloI4w9PQnkDwPKSfGhKa/1qBYUSJ92Gou9a8isFWpNbTF
LuJQilZXxrV2AXQ5VHLhY/taK7atKUeKW03Ho9wJ5Q0EjWAfe5eNjq5SjsG7
6srSS4rQ4Gu9Rt6lgH6IpHBBI7YDYI1WwxGdjgSHQgovqtLrwPkvpdyYFaut
7j6ue4dwn7P47oUI4hE+0feLyS8mX2iqr5QpCBr4pQ5m2g3EYqQl4OpIM6mO
Obuh3O5cNrwcu5x3kHtA8+l6VNVqy41Smlk5MvGmA7IZ8gybKycejKXeiytz
ooOzExNpdVDoeUURIEauLjtHHgUf7+EdrcuTuCiMXn9BgHAYGp1b+ekLaHwD
ZRV13BgMgQNJV6qctyN8RvsaeVMIdzzY7oUitRfV3dlTCcnlt1Gro08//XDs
FxNohEHpNMF8oxdRJotZ/lo+1jDPykHntuNsCTJ2LIz56UCtl6ICBiXhWlST
RmaLxtw8bN+4Far66ER0IW6VdZIg2rmxcvtN2XDTic1UdBejxZ0msNzdAeZa
pMFZbTKc3srXSe3PwWQt5/u2vUR7Ugb+U+JaXRppTm1tnNY1Cbjy0t2GcLAK
tnFUvL6xDoxy237ooH0sK6J1ee+79xzAbmG6ldWMKjb2bGTkCtN5VagXYj5n
9x4gEMMxEjwI41rdwzT5tQMikTWEYjvqwVrSPcHwRsDLPovGlpB2fKFVELsf
c5GRECJf3K7XFiRXxy5gbwieartmyuRRW9vFbp+1v+2wCgeDcMVBGVVXdjIV
oUwbN7sb2Kpi3nN/PyR0IHSKIt5Zn9AYA8L1EMOGaCr1eJyhIujayd93SbRc
YAlaTS06Ie2SzlCyzdWNQ6cwsgs0lMZVp+v1MDBU77kGLdcZUMuv/ER4g77z
Gk6Ifnas7zqJR3OAEJf8RLKCdBXdgmpERWlb0o8dUT+1FRnA4OOFNCNwbVk1
KUx3AFVtWr4TMV69dsuy5D42taZzpe1SD1zOQrIi+BOufx2kPkdK8rkKy641
WH9LNQBRa8ht0amVZPcnLfWWrcBI1gBOghSqNOT8mnkVNpSPmhjq/ridUnuF
p05z0I7SiJBje0KlUXJm2JLQj/ZdEMRgT6UsIi3KYr/h3nchIpjU5jNBzbnf
yweaUl1nnIfjHO90f8qF8xpZ+yRHe6QXkdMtKxIlU832szMXctp0NROnjtDU
36CofwmCgzD61/6evf+McxjG/gqZlqLWiXadE8NETTXrVNQDyD8PbqyQR1iS
g9tt0bq7wiuZzEVi8RYXsqUlsDT8LK1Ka7Wd1eEKS7qwMCgD/74upyN5ldZj
Za0DvXaRe/f/fZp78chi8ESlciGk5TQoDR20l/Di/6LcVR4caCLUZEtWEZhc
uxRLseUV8HEAEHS/SEcwEuKvET7Y8QEHagBd+8kg3CopOySWPJrwKcYsswUg
hPW49FF60ns2sSV6Mnh8eGBYXkfJvCrFN40RXeaqr4tod03q6X+hw/UYB6WP
JHAMaSrR2ieDL/W7DtL0tKHR05OQD2+a5LfpZznI53oiotD5s+LD8QbueZXe
wtBSaxi3RhGohGM88ZEzyDmwGpbvCmdElbO7Y5jHbpjwgJ2hpgM42cwILJn7
nMllSetrdfQo7zo03Rd3T9djZPvIVKc28peup7BFXbDk3JkG6RhpnXWPqS1Q
Hp62C5XQU8Jxj4JKrqJ84JRvcRRQfcnba9nFhH4U9yEdQAApaeYt3MQJdBES
VZHeXqOQmcujl0tuHFUKXjS+RSJIS9jveMeN6mC1Vd9B2Ngr1/0qmDmsJMxb
dsXDOm35us5ikfDaxak/jCwR2HXt6t5KPt4NLJe2GhGypjvmocisvzFw7Ipd
DXPTIq1XQR87QM5tjGsc+NxPn72bIcw5bJ8oZqghncOQCTjNAROM748bNbOx
zmSud7V2z7VG9g4UQcXBAlaeCM0ELVttqf0xyUp30wZOcg3bdtQfqds1BLNN
6FrnsmXl2lXrD3x6j/j7L7nk7sGutRoNqRYeBUo6p12aB1EarvpFMjY72iAC
k1xU0eXC+gfSbCStr/2sR3Yk+2RFF5O7aAyPJa6lxFpccIandkyhHTVyvmwe
T4vw1j0jyIdfRK4vZkNi2wa51oudV70iK12GeXmrwReNfMW46pMH0zmsPxu1
rX3me0y+cV3KUZi0nNG50z/e7Z+Q5n3mKuGdQ4ThGA2e8Bmfg9QvtV+kute9
WnOrNMMOKi2mZYaRulw0t9aZealFrbb5crlnrgWRVZLfXbQ2LxlYyt6/UXJ+
cfqKzV2/o39ISC6n6fiihXW2QadK67DmO2xOfL+tQi4OlsxeyVQUG3HCbDmM
GZIhMuSWMntKOKKep+H9FpZqaNgW8Pa2A/5TV137LuFRH9zkyCLZ1I8cFGR2
SRRWGOwoL+RVV1BVrJy+HIhh6URrKaleN9yud8slLtIwAkfg6rDwhCAxMapo
RexQKghbJVMp7p6vtfjM0oL1e5LhmbyXpLO1EcslvTF3ybRKBlvcJURTGhkF
TJioqrqF+UCsELXQRCwpqlroEyOtrLcU7V9y3Z6gbXJENSPG5QofWn0VlkDS
OlfEq9NF5utR7LVIWFQmdx+W4HFGfIL8kW987EMEdxXkO3CkLHctejNFD12L
YJa1KeCip3zXWJMHNdcWt3XgOuloUFFUKkRwEJQfpDwRh2jfEjFZyS652kK9
L2arqizyf+IQqTnbaItszZUt7J64KFpHFd1c4bXwOdY+/GNOjLjcu3ubx6RK
AC26j1g0OERokwVJs61F+bVk63yDVB51uRLSSbWpscxp2ngUpcMDEmPbZO0G
tmENmHk52/EaWL90FXTVYgu/V5tj9tElDacVOi39g5JLhEmI048JOe/SqP2z
gGu8/4xByoEeesrjgKv0ufzmXdV6ZA42nn2rrVQO034gcCA6WM06FVCtYBW0
RvgJgzAVhHY4dGHHOfGNYLNSk/oXXz78NSS6sjIzoBaYsLAtHUDLl8EKAJYS
CuyG8YDbQsIq8J26atutMQNbpm7DtX1Bz05etrmiJM+/XSM1ORHbTMuTcxT1
Tx4J4RIxyAJvTAQETRExbx5JgyMNlSKyv1bfsI5/LG1IwmTb/vQjkZucODpy
rkYmslZVpS+VkaurfEeLRpNY77q3TGJGTanJo1Ji7U2kQQVcq8wArdOYis/w
akE8EJWE8J7M47YGAX6ftI+lZbc3XSk+FA2yG7mPzQoT6k34+obOgYdw1m1X
4MhB83gSVE3SCqmQjW6R4SVKSJNz6VCvwLsV6jlwbpOr0akGEN9ZzbPN37h4
NyHteZBir5dYVoDaAoRVS1/LGglbvCS+H74tGa7obuMz2PkkkcmjtWhggIEH
39v+YMzl2rwWJATLBZcv0nWFPYW4DagUPcxsHSwU6oEdSZJCy7Xu3sKQjK9x
GVBGXKmZaLVkRK3wLE75JFFgYl/gF9xPkbPlr7Vrclz8ZWxSGkF9VeR/3qFu
mcCuU346MKBwFdm9xoYncWOZerdlqTympCw5HeWTbDLi7PRfJkF7S7nU0i6k
U0jKUdpE7qE39TMhEenWq507NcRq0WRdos7c7jF67FQdpYQsFnh4+mGdMUay
UHz1Vo20UYP3Imy40kebXZG0gxXQXe3tKDKOperAAon9SyNzXLJMWriWQZOc
d4115YtotsVwBU2RHMPS0Ciua6EBfZ5LMWq1DMPA8zrwE2hpBtVbgpUC3w93
iALsZAtuBwejzbtRwyI2ivmEcV1Je8dawkXWI0dFRNKlzngQFxLkLLtIfaPP
Gjp2rYmz4S3W6XuyPLEClFa4teIuLYmvt4GqafN5N+0JxgTcGM5zo+0E7YCf
+om8KJFVVVnF2ehW0MFFvHj9JE5kk8kyCSYQXctyyuwussTgFBDjQope3jOc
QR5BxgRpsymc0nrfbrU6IifIi58WTbAEGbtFzViytIDJw1IbRJnURHCTRP2y
GX/2pVmGZq5lBrIIVdKdWBpIOp+zSGF1T2ldrBG3KF2fnaOsrntE3oJV6x5p
t91byXszJVC9pzavkn8OpePIXSmv7euwWCXjg5fLU3qfjdCSd9m+ERYnE0ec
NqeG7R7Hz+0h5rI3ZN69eunNB8dGSCRLwGxO0U2UqDiOthT7Fmk9SMAyFOrt
VaJrCCvnRXFPiKEiIYsFFnWdu8q5Ipxq/xIJBHMVLKPguk6oLzjiZPC1ySWb
jIUeAoMGeCbgqFK5SxLpHc4HhMZVeMPlCggsq+I/qMXChSgw43rKwbV1OQLR
Rk46PQCmIAbq0qd4WTfb3t42rqaDhvOq2hEUJteay76o+twKFD3tWZkTNmkt
uSxOE+Z5cankRyOFwqKHLUA059gt2hA7nPriTkb8nTl8uSpsUF0x4DSsPuEH
jBjUscnuaHOjFFubLUVAGgtSoLsQxxGna5FEJdas49YPKc9crp1FDbS4F6zu
T23mp+fjs8kc+VLjPGsWNOlmW4/ly7EfU6LKvtECIto2EhGN0Ih2FVeiq8PK
SlHF76eu47zcMhSr14bSRvF6KYMOoYKU+k24UE8c/ZprPRIOVQhTlgqtwhTd
JJ9vYDzf+zqC+CaN2vdaLHcnPpcOo5pTLCxDKUjrukrtll2xKedSPFUNeaHk
Gjc8YEsQh3JbNsDIyaPXHGkCdOKeObxsnUlEbE9op+j1cYOgm8godQ/Bhu1x
XAozsP2rRGK9gTlfrbthqQjIRyFpEsRHdymwmtAsbIH+TsvUABQ6QM5WPKnQ
b2oRTFAiskRp4ehjkk7Z/7Isl7lEpRIU/Vy+NATmehojHuhmUXJLI44PlFCO
8PsRS5JOTMKcXltky7WGzcD2tWSR5HwR8xCzQvdXo0LJ0yLKp64ji0BPja0P
xyOnqLoiHSqa+E6OK6s/qqcadCjaO/aMEE/GL+s1okWXVQjoEyBscXfavVjC
7ZfNDvDi/0vSmhNkTUBjC2q/mCR34P+RbKYXLhDHfliVCUpjVuVaEPyVYOzg
Ra5KQlwinYHCKqccmNhTWU91wgyMPnl9zQohKUgZ27Zd4DrX2iVRRAuGCf+a
qxdDC+0Go7qO41qtl66sGP8tZBJ0aZR4yzr3MtrQOvLCK0nQ9YKS7DPZ8dor
fbYENLM3n35GV5N9jTDTJVz3G/B3frew5FCViqFjxcYf5/Hwr7hK/kHA+k6y
MFVlhedWSaGtxrlQkQqL1iRS91d7scMuwtTj7fmDt39UK+9sx2WBHS1xRQ0d
8QEs6I+bfC7lIM9Pvz9NrICpxL0NBhenP379/Im9l/gu8GKfxSL5O6WeVbbM
a7TrxgXW2CJl/ODVQyuBmq6HiTf+8E9BiOHwqXe4V+WUaeyucHeQV3tpO2yv
mL8Uu5s30mvWSlZ7yMyi75Q33cv7yfplXNSel3Q6c/Y49tOKV9tyG6yHSa26
Sxihquk0wYUWFYOICUzCzLLCLH1Ghw24lrcrOiWagB3cg8HpOntH8uZFti7y
6/JmNPg6q4o8I/mJiBXdyoKe/AkVTZLX//t/FqRGP6cbX6ECwGhwltKpJ1+T
3kF0jf7MpgTucp3tR8QN12Bb31bZdbYeDX6XEigIGV+XkCBqelCS9Ixb8E1K
+1zTK3/aLdPR4FWKDLNrGnRX1LPVbb4cDS4JQ8t6Ba/0NcL/xeX1B9oDNkbT
582mZLowGI/HbCQGvN+gDdgfuCZg7WoUvImgqFKvlX/JrMoaIt8CDQknsknX
sb5Uqw0tRoS4ClRs81DtKxJkp1U2JopdbJfbcS2zjx8++vCBvxWXx68fP/oF
NzQ9FxsQs1WLvbbm007ZNTkpsAJIQMCZbfqbHNHke8112E3BfcRky2KCrjKQ
syeTyfjhl6yJtB5+xame83IrYe27LbeDkn7mfGGQM9Ee7oDYziP5JrFeGJxH
poCWMcjVqkB8IlyT194HxKTsE7f5Rd82v5Rtim0/YJ1BK4CySmfr7Mq6yCJ4
bJ1WKkyDsg4vHW1LvhGaN3RlhTk1kDQ3Ou3HD7/86vM6GXLeqr34iZt43LeJ
L/wmYhhzlG0QAsspI9CK7iqAKZXcegqX1m4WNssTF3GSvQvMnnPWHQGC9I1s
jS8uuF6bQEztalJQfiyyyHibOWHOTeBCw1hHXnC4pTb35ba9nwi1R31Qe+yh
RlPkRW7GkIghGRf7xBkf9s346NA5SQoLbbrmoJRWKWo+pqB/Bw3ylq/j3JO7
Fk9zzZy9VBShNwrEjae7nJR56eiComvl9n5Xan69vAOsD9lm81tivKX0+sbv
qPVSgqG1SRXvzT181rsL9X7O1U0NN/Y7tqykN2XuQUmb44QrdTsVajSbf9qe
goPz+xxw8ZZgbZpBAbHkgZY/8OKRyAm7WmMM8C2j/75bgSyqOenMUWOXW6Tm
Ky6rk6MwvW/LHlvCfc1uVK3xlxQ1j0iSzejyDv4Pb2nqiO8GAQA=

-->

</rfc>

