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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-rats-reference-interaction-models-01" category="info">

  <front>
    <title abbrev="REIM">Reference Interaction Models for Remote Attestation Procedures</title>

    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="M." surname="Eckel" fullname="Michael Eckel">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>michael.eckel@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="C." surname="Newton" fullname="Christopher Newton">
      <organization>University of Surrey</organization>
      <address>
        <email>cn0016@surrey.ac.uk</email>
      </address>
    </author>
    <author initials="L." surname="Chen" fullname="Liqun Chen">
      <organization>University of Surrey</organization>
      <address>
        <email>liqun.chen@surrey.ac.uk</email>
      </address>
    </author>

    <date year="2020" month="October" day="23"/>

    <area>Security</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes interaction models for remote attestation procedures (RATS).
Three conveying mechanisms – Challenge/Response, Uni-Directional, and Streaming Remote Attestation  – are illustrated and defined.
Analogously, a general overview about the information elements typically used by corresponding conveyance protocols are highlighted. Privacy preserving conveyance of Evidence via Direct Anonymous Attestation is elaborated on in the context of the Attester, Endorser, and Verifier role.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Remote ATtestation procedureS (RATS, <xref target="I-D.ietf-rats-architecture"/>) are workflows composed of roles and interactions, in which Verifiers create Attestation Results about the trustworthiness of an Attester’s system component characteristics.
The Verifier’s assessment in the form of Attestation Results is created based on Attestation Policies and Evidence – trustable and tamper-evident Claims Sets about an Attester’s system component characteristics – generated by an Attester.
The roles <spanx style="emph">Attester</spanx> and <spanx style="emph">Verifier</spanx>, as well as the Conceptual Messages <spanx style="emph">Evidence</spanx> and <spanx style="emph">Attestation Results</spanx> are concepts defined by the RATS Architecture <xref target="I-D.ietf-rats-architecture"/>.
This document defines interaction models that can be used in specific RATS-related solution documents.
The primary focus of this document is the conveyance of attestation Evidence. The reference models defined can also be applied to the conveyance of other Conceptual Messages in RATS.
Specific goals of this document are to:</t>

<t><list style="symbols">
  <t>prevent inconsistencies in descriptions of interaction models in other documents (due to text cloning and evolution over time),</t>
  <t>enable to highlight an exact delta/divergence between the core set of characteristics captured here in this document and variants of these interaction models used in other specifications or solutions, and to</t>
  <t>illustrate the application of Direct Anonymous Attestation (DAA) for the defined set of reference models.</t>
</list></t>

<t>In summary, this document enables the specification and design of trustworthy and privacy preserving conveyance methods for attestation Evidence from an Attester to a Verifier.
While the conveyance of other Conceptual Messages is out-of-scope the methods described can also be applied to the conveyance of, for example, Endorsements or Attestation Results.</t>

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

<t>This document uses the following set of terms, roles, and concepts as defined in <xref target="I-D.ietf-rats-architecture"/>:</t>

<t>Attester, Verifier, Relying Party, Conceptual Message, Evidence, Endorsement, Attestation Result, Appraisal Policy, Attesting Environment, Target Environment</t>

<t>A PKIX Certificate is an X.509v3 format certificate as specified by <xref target="RFC5280"/>.</t>

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

</section>
<section anchor="disambiguation" title="Disambiguation">

<t>The term “Remote Attestation” is a common expression and often associated or connoted with certain properties.
The term “Remote” in this context does not necessarily refer to a remote entity in the scope of network topologies or the Internet.
It rather refers to a decoupled system or entities that exchange the payload of the Conceptual Message type called Evidence <xref target="I-D.ietf-rats-architecture"/>.
This conveyance can also be “Local”, if the Verifier role is part of the same entity as the Attester role, e.g., separate system components of the same Composite Device (a single RATS entity).
Examples of these types of co-located environments include: a Trusted Execution Environment (TEE), Baseboard Management Controllers (BMCs), as well as other physical or logical protected/isolated/shielded Computing Environments (e.g. embedded Secure Elements (eSE) or Trusted Platform Modules (TPM)). Readers of this document should be familiar with the concept of Layered Attestation as described in Section 4.3 Two Types of Environments of an Attester in <xref target="I-D.ietf-rats-architecture"/> and the definition of Attestation as described in <xref target="I-D.ietf-rats-tpm-based-network-device-attest"/>.</t>

</section>
<section anchor="scope-and-intent" title="Scope and Intent">

<t>This document focuses on generic interaction models between Attesters and Verifiers in order to convey Evidence.
Complementary procedures, functions, or services that are required for a complete semantic binding of the concepts defined in <xref target="I-D.ietf-rats-architecture"/> are out-of-scope of this document.
Examples include: identity establishment, key distribution and enrollment, time synchronization, as well as certificate revocation.</t>

<t>Furthermore, any processes and duties that go beyond carrying out remote attestation procedures are out-of-scope.
For instance, using the results of a remote attestation that are created by the Verifier, e.g., how to triggering remediation actions or recovery processes, as well as such remediation actions and recovery processes themselves, are also out-of-scope.</t>

<t>The interaction models illustrated in this document are intended to provide a stable basis and reference for other solutions documents inside or outside the IETF.
Solution documents of any kind can reference the interaction models in order to avoid text clones and to avoid the danger of subtle discrepancies.
Analogously, deviations from the generic model descriptions in this document can be illustrated in solutions documents to highlight distinct contributions.</t>

</section>
<section anchor="direct-anonymous-attestation" title="Direct Anonymous Attestation">

<t>DAA <xref target="DAA"/> is a signature scheme used in RATS that allows preservation of the privacy of users that are associated with an Attester (e.g. its owner).
Essentially, DAA can be seen as a group signature scheme with the feature that given a DAA signature no-one can find out who the signer is, i.e., the anonymity is not revocable.
To be able to sign anonymously an Attester has to obtain a credential from a DAA Issuer.
The DAA Issuer uses a private/public key pair to generate a credential for an Attester and makes the public key (in the form of a public key certificate) available to the verifier in order to enable them to validate the DAA signature obtained as part of the Evidence.</t>

<t>In order to support these DAA signatures, the DAA Issuer MUST associate a single key pair with each group of Attesters and use the same key pair when creating the credentials for all of the Attesters in this group.
The DAA Issuer’s public key certificate used by a group of Attesters replaces the individual  Attester Identity documents during authenticity validation as a part of the appraisal of Evidence conducted by a Verifier.
This is in contrast to intuition that there has to be a unique Attester Identity per device.</t>

<t>This document extends the duties of the Endorser role as defined by the RATS architecture with respect to the provision of these Attester Identity documents to Attesters.
The existing duties of the Endorser role and the duties of a DAA Issuer are quite similar as illustrated in the following subsections.</t>

<section anchor="endorsers" title="Endorsers">

<t>Via its Attesting Environments, an Attester only generates Evidence about its Target Environments.
After being appraised to be trustworthy, a Target Environment may become a new Attesting Environment in charge of generating Evidence for further Target Environments.
<xref target="I-D.ietf-rats-architecture"/> explains this as Layered Attestation.
Layered Attestation has to start with an initial Attesting Environment. In essence, there cannot be turtles all the way down <xref target="turtles"/>.
At this rock bottom of Layered Attestation, the Attesting Environments are always called Roots of Trust (RoT).
An Attester cannot generate Evidence about its own RoTs by design.
As a consequence, a Verifier requires trustable statements about this subset of Attesting Environments from a different source than the Attester itself.
The corresponding trustable statements are called Endorsements and originate from external, trustable entities that take on the role of an Endorser (e.g., supply chain entities).</t>

</section>
<section anchor="endorsers-for-direct-anonymous-attestation" title="Endorsers for Direct Anonymous Attestation">

<t>In order to enable the use of DAA, an Endorser role takes on the duties of a DAA Issuer in addition to its already defined duties.
DAA Issuers offer zero-knowledge proofs based on public key certificates used for a group of Attesters <xref target="DAA"/>.
Effectively, these certificates share the semantics of Endorsements, with the following exceptions:</t>

<t><list style="symbols">
  <t>The associated private keys are used by the DAA Issuer to provide an Attester with a credential that it can use to convince the Verifier that its Evidence is valid.
To keep their anonymity the Attester randomizes this credential each time that it is used.</t>
  <t>The Verifier can use the DAA Issuer’s public key certificate, together with the randomized credential from the Attester, to confirm that the Evidence comes from a valid Attester.</t>
  <t>A credential is conveyed from an Endorser to an Attester in combination with the conveyance of the public key certificates from Endorser to Verifier.</t>
</list></t>

<t>The zero-knowledge proofs required cannot be created by an Attester alone – like the Endorsements of RoTs – and have to be created by a trustable third entity – like an Endorser.
Due to that semantic overlap, the Endorser role is augmented via the definition of DAA duties as defined below. This augmentation enables the Endorser to convey trustable third party statements both to Verifier roles and Attester roles.</t>

</section>
</section>
<section anchor="normative-prerequisites" title="Normative Prerequisites">

<t>In order to ensure an appropriate conveyance of Evidence via interaction models in general, the following set of prerequisites MUST be in place to support the implementation of interaction models:</t>

<t><list style="hanging">
  <t hangText='Attester Identity:'>
  The provenance of Evidence with respect to a distinguishable Attesting Environment MUST be correct and unambiguous.</t>
  <t>An Attester Identity MAY be a unique identity, it MAY be included in a zero-knowledge proof (ZKP), or it MAY be part of a group signature, or it MAY be a randomised DAA credential.</t>
  <t hangText='Attestation Evidence Authenticity:'>
  Attestation Evidence MUST be correct and authentic.</t>
  <t>In order to provide proofs of authenticity, Attestation Evidence SHOULD be cryptographically associated with an identity document (e.g. an PKIX certificate or trusted key material, or a randomised DAA credential), or SHOULD include a correct and unambiguous and stable reference to an accessible identity document.</t>
  <t hangText='Authentication Secret:'>
  An Authentication Secret MUST be available exclusively to an Attester’s Attesting Environment.</t>
  <t>The Attester MUST protect Claims with that Authentication Secret, thereby proving the authenticity of the Claims included in Evidence.
The Authentication Secret MUST be established before RATS can take place.</t>
  <t hangText='Evidence Freshness:'>
  Evidence MUST include an indicator about its freshness that can be understood by a Verifier. Analogously, interaction models MUST support the conveyance of proofs of freshness in a way that is useful to Verifiers and their appraisal procedures.</t>
  <t hangText='Evidence Protection:'>
  Evidence MUST be a set of well-formatted and well-protected Claims that an Attester can create and convey to a Verifier in a tamper-evident manner.</t>
</list></t>

</section>
<section anchor="generic-information-elements" title="Generic Information Elements">

<t>This section defines the information elements that are vital to all kinds interaction models.
Varying from solution to solution, generic information elements can be either included in the scope of protocol messages (instantiating Conceptual Messages) or can be included in additional protocol parameters or payload.
Ultimately, the following information elements are required by any kind of scalable remote attestation procedure using one or more of the interaction models provided.</t>

<t><list style="hanging">
  <t hangText='Attester Identity (‘attesterIdentity’):'>
  <spanx style="emph">mandatory</spanx></t>
  <t>A statement about a distinguishable Attester made by an Endorser without accompanying evidence about its validity - used as proof of identity.</t>
  <t>In DAA, the Attester’s identity is not revealed to the verifier.
The Attester is issued with a credential by the Endorser that is randomised and then used to anonymously confirm the validity of their evidence.
The evidence is verified using the Endorser’s public key.</t>
  <t hangText='Authentication Secret IDs (‘authSecID’):'>
  <spanx style="emph">mandatory</spanx></t>
  <t>A statement representing an identifier list that MUST be associated with corresponding Authentication Secrets used to protect Evidence.</t>
  <t>In DAA, Authentication Secret IDs are represented by the Endorser (DAA issuer)’s public key that MUST be used to create DAA credentials for the corresponding Authentication Secrets used to protect Evidence.</t>
  <t>Each Authentication Secret is uniquely associated with a distinguishable Attesting Environment. Consequently, an Authentication Secret ID also identifies an Attesting Environment.</t>
  <t>In DAA, an Authentication Secret ID does not identify a unique Attesting Environment but associated with a group of Attesting Environments.
This is because an Attesting Environment should not be distinguishable and the DAA credential which represents the Attesting Environment is randomised each time it used.</t>
  <t hangText='Handle (‘handle’):'>
  <spanx style="emph">mandatory</spanx></t>
  <t>A statement that is intended to uniquely distinguish received Evidence and/or determine the freshness of Evidence.</t>
  <t>A Verifier can also use a Handle as an indicator for authenticity or attestation provenance, as only Attesters and Verifiers that are intended to exchange Evidence should have knowledge of the corresponding Handles. Examples include Nonces or signed timestamps.</t>
  <t hangText='Claims (‘claims’):'>
  <spanx style="emph">mandatory</spanx></t>
  <t>Claims are assertions that represent characteristics of an Attester’s Target Environment.</t>
  <t>Claims are part Conceptual Message and are, for example, used to appraise the integrity of Attesters via a Verifiers. The other information elements in this section can be expressed as Claims in any type of Conceptional Messages.</t>
  <t hangText='Reference Claims (‘refClaims’)'>
  <spanx style="emph">mandatory</spanx></t>
  <t>Reference Claims are components of Reference Values as defined in <xref target="I-D.ietf-rats-architecture"/>. [Editor’s Note: Definition might become obsolete, if replaced by Reference Values. Is there a difference between Claims and Values here? Analogously, why is not named Reference Claims in the RATS arch?]</t>
  <t>Reference Claims are used to appraise the Claims received from an Attester via appraisal by direct comparison. For example, Reference Claims MAY be Reference Integrity Measurements (RIM) or assertions that are implicitly trusted because they are signed by a trusted authority (see Endorsements in <xref target="I-D.ietf-rats-architecture"/>). Reference Claims typically represent (trusted) Claim sets about an Attester’s intended platform operational state.</t>
  <t hangText='Claim Selection (‘claimSelection’):'>
  <spanx style="emph">optional</spanx></t>
  <t>A statement that represents a (sub-)set of Claims that can be created by an Attester.</t>
  <t>Claim Selections can act as filters that can specify the exact set of Claims to be included in Evidence. An Attester MAY decide whether or not to provide all Claims as requested via a Claim Selection.</t>
  <t hangText='Evidence (‘signedAttestationEvidence’):'>
  <spanx style="emph">mandatory</spanx></t>
  <t>A set of Claims that consists of a list of Authentication Secret IDs that each identifies an Authentication Secret in a single Attesting Environment, the Attester Identity, Claims, and a Handle. Attestation Evidence MUST cryptographically bind all of these information elements. Evidence MUST be protected via an Authentication Secret. The Authentication Secret MUST be trusted by the Verifier as authoritative.</t>
  <t hangText='Attestation Result (‘attestationResult’):'>
  <spanx style="emph">mandatory</spanx></t>
  <t>An Attestation Result is produced by the Verifier as the output of the appraisal of Evidence. Attestation Results include condensed assertions about integrity or other characteristics of the corresponding Attester that are digestable by Relying Parties.</t>
</list></t>

</section>
<section anchor="interaction-models" title="Interaction Models">

<t>The following subsections introduce and illustrate the interaction models:</t>

<t><list style="numbers">
  <t>Challenge/Response Remote Attestation</t>
  <t>Uni-Directional Remote Attestation</t>
  <t>Streaming Remote Attestation</t>
</list></t>

<t>Each section starts with a sequence diagram illustrating the interactions between Attester and Verifier.
While the interaction models presented focus on the conveyance of Evidence, the intention of this document is in support of future work that applies the presented models to the conveyance of other Conceptual Messages, namely Attestation Results, Endorsements, Reference Values, or Appraisal Policies.</t>

<t>All interaction models have a strong focus on the use of a handle to incorporate a type of proof of freshness.
The ways these handles are processed is the most prominent difference between the three interaction models.</t>

<section anchor="challengeresponse-remote-attestation" title="Challenge/Response Remote Attestation">

<figure><artwork><![CDATA[
.----------.                                                .----------.
| Attester |                                                | Verifier |
'----------'                                                '----------'
     |                                                            |
     |                                                            |
valueGeneration(targetEnvironment)                                |
     | => claims                                                  |
     |                                                            |  
     | <------requestEvidence(handle, authSecIDs, claimSelection) |
     |                                                            |
claimsCollection(claimSelection)                                  |
     | => collectedClaims                                         |
     |                                                            |
evidenceGeneration(handle, authSecIDs, collectedClaims)           |
     | => evidence                                                |
     |                                                            |
     | returnEvidence-------------------------------------------> |
     | returnEventLog-------------------------------------------> |
     |                                                            |
     |                  evidenceAppraisal(evidence, eventLog, refClaims)
     |                                       attestationResult <= |
     |                                                            |
]]></artwork></figure>

<t>This Challenge/Response Remote Attestation procedure is initiated by the Verifier, by sending a remote attestation request to the Attester.
A request includes a Handle, a list of Authentication Secret IDs, and a Claim Selection.</t>

<t>In the Challenge/Response model, the handle is composed of qualifying data in the form of a cryptographically strongly randomly generated, and therefore unpredictable, nonce.
The Verifier-generated nonce is intended to guarantee Evidence freshness.</t>

<t>The list of Authentication Secret IDs selects the attestation keys with which the Attester is requested to sign the Attestation Evidence.
Each selected key is uniquely associated with an Attesting Environment of the Attester.
As a result, a single Authentication Secret ID identifies a single Attesting Environment.</t>

<t>Analogously, a particular set of Evidence originating from a particular Attesting Environments in a composite device can be requested via multiple Authentication Secret IDs.
Methods to acquire Authentication Secret IDs or mappings between Attesting Environments to Authentication Secret IDs are out-of-scope of this document.</t>

<t>The Claim Selection narrows down the set of Claims collected and used to create Evidence to those that the Verifier requires.
If the Claim Selection is omitted, then by default all Claims that are known and available on the Attester MUST be used to create corresponding Evidence.
For example when performing a boot integrity evaluation, a Verifier may only be requesting a particular subset of claims about the Attester, such as Evidence about BIOS and firmware the Attester booted up, and not include information about all currently running software.</t>

<t>While it is crucial that Claims, the Handle, as well as the Attester Identity information MUST be cryptographically bound to the signature of Evidence, they may be presented in an encrypted form.</t>

<t>Cryptographic blinding MAY be used at this point. For further reference see section <xref target="security-and-privacy-considerations"/>.</t>

<t>As soon as the Verifier receives signed Evidence, it validates the signature, the Attester Identity, as well as the Nonce, and appraises the Claims.
Appraisal procedures are application-specific and can be conducted via comparison of the Claims with corresponding Reference Claims, such as Reference Integrity Measurements.
The final output of the Verifier are Attestation Results. Attestation Results constitute new Claims Sets about an Attester’s properties and characteristics that enables Relying Parties, for example, to assess an Attester’s trustworthiness.</t>

</section>
<section anchor="uni-directional-remote-attestation" title="Uni-Directional Remote Attestation">

<figure><artwork><![CDATA[
.----------.                                                .----------.
| Attester |                                                | Verifier |
'----------'                                                '----------'
     |                                                            |
valueGeneration(targetEnvironment)                                |
     | => claims                                                  |
     |                                                            |
     |                   .--------------------.                   |
     | <----------handle |                    |                   |
     |                   | Handle Distributor |                   |
     |                   |                    | handle----------> |
     |                   '--------------------'                   |
     |                                                            |
evidenceGeneration(handle, authSecIDs, collectedClaims)           |
     | => evidence                                                |
     |                                                            |
     | pushEventLog---------------------------------------------> |
     | pushEvidence---------------------------------------------> |
     |                                                            |
     |                   appraiseEvidence(evidence, eventLog, refClaims)
     |                                       attestationResult <= |
     ~                                                            ~
     |                                                            | 
valueGeneration(targetEnvironment)                                |
     | => claimsDelta                                             |
     |                                                            |
evidenceGeneration(handle, authSecIDs, collectedClaims)           |
     | => evidence                                                |
     |                                                            |
     | pushEventLogDelta----------------------------------------> |
     | pushEvidence---------------------------------------------> |
     |                                                            |
     |              appraiseEvidence(evidence, eventLogDelta, refClaims)
     |                                       attestationResult <= |
     |                                                            |
]]></artwork></figure>

<t>Uni-Directional Remote Attestation procedures can be initiated both by the Attester and by the Verifier.
Initiation by the Attester can result in unsolicited pushes of Evidence to the Verifier.
Initiation by the Verifier always results in solicited pushes to the Verifier.
The Uni-Directional model uses the same information elements as the Challenge/Response model.
In the sequence diagram above, the Attester initiates the conveyance of Evidence (comparable with a RESTful POST operation or the emission of a beacon).
While a request of evidence from the Verifier would result in a sequence diagram more similar to the Challenge/Response model (comparable with a RESTful GET operation), the specific manner how handles are created and used always remains as the distinguishing quality of this model.
In the Uni-Directional model, handles are composed of trustable signed timestamps as shown in <xref target="I-D.birkholz-rats-tuda"/>, potentially including other qualifying data.
The handles are created by an external 3rd entity – the Handle Distributor – that includes a trustworthy source of time and takes on the role of a Time Stamping Authority (TSA, as initially defined in <xref target="RFC3161"/>).
Timstamps created from local clocks (absolute clocks using a global timescale, as well as relative clocks, such as tick-counters) of Attesters and Verifiers MUST be cryptographically bound to fresh Handles received from the Handle Distributor.
This binding provides a proof of synchronization that MUST be included in every evidence created.
Correspondingly, evidence created for conveyance via this model provides a proof that it was fresh at a certain point in time.
Effectively, this allows for series of evidence to be pushed to multiple Verifiers, simultaniously. 
Methods to detect excessive time drift that would mandate a fresh Handle to be received by the Handle Distributor, as well as timing of handle distribution are out-of-scope of this document.</t>

</section>
<section anchor="streaming-remote-attestation" title="Streaming Remote Attestation">

<figure><artwork><![CDATA[
.----------.                                                .----------.
| Attester |                                                | Verifier |
'----------'                                                '----------'
     |                                                            |
valueGeneration(targetEnvironment)                                |
     | => claims                                                  |
     |                                                            |
     | <----subscribeEvidence(handle, authSecIDs, claimSelection) |
     | subscriptionResult --------------------------------------> |
     |                                                            |
evidenceGeneration(handle, authSecIDs, collectedClaims)           |
     | => evidence                                                |
     |                                                            |
     | pushEventLog---------------------------------------------> |
     | pushEvidence---------------------------------------------> |
     |                                                            |
     |                  evidenceAppraisal(evidence, eventLog, refClaims)
     |                                       attestationResult <= |
     ~                                                            ~
     |                                                            |
valueGeneration(targetEnvironment)                                |
     | => claimsDelta                                             |
     |                                                            |
evidenceGeneration(handle, authSecIDs, collectedClaims)           |
     | => evidence                                                |
     |                                                            |
     | pushEventLogDelta----------------------------------------> |
     | pushEvidence---------------------------------------------> |
     |                                                            |
     |             evidenceAppraisal(evidence, eventLogDelta, refClaims)
     |                                       attestationResult <= |
     |                                                            |
]]></artwork></figure>

<t>Streaming Remote Attestation procedures require the setup of subscription state.
Setting up subscription state between a Verifier and an Attester is conducted via a subscribe operation.
This subscribe operation is used to convey the handles required for Evidence generation.
Effectively, this allows for series of evidence to be pushed to a Verifier similar to the Uni-Directional model.
While a Handle Distributor is not required in this model, it is also limited to bi-lateral subscription relationships, in which each Verifier has to create and provide its individual handle.
Handles provided by a specific subscribing Verifier MUST be used in Evidence generation for that specific Verifier.
The Streaming model uses the same information elements as the Challenge/Response and the Uni-Directional model.
Methods to detect excessive time drift that would mandate a refreshed Handle to be conveyed via another subscribe operation are out-of-scope of this document.</t>

</section>
</section>
<section anchor="additional-application-specific-requirements" title="Additional Application-Specific Requirements">

<t>Depending on the use cases covered, there can be additional requirements. An exemplary subset is illustrated in this section.</t>

<section anchor="confidentiality" title="Confidentiality">

<t>Confidentiality of exchanged attestation information may be desirable. This requirement usually is present when communication takes place over insecure channels, such as the public Internet. In such cases, TLS may be uses as a suitable communication protocol that preserves confidentiality. In private networks, such as carrier management networks, it must be evaluated whether or not the transport medium is considered confidential.</t>

</section>
<section anchor="mutual-authentication" title="Mutual Authentication">

<t>In particular use cases mutual authentication may be desirable in such a way that a Verifier also needs to prove its identity to the Attester, instead of only the Attester proving its identity to the Verifier.</t>

</section>
<section anchor="hardware-enforcementsupport" title="Hardware-Enforcement/Support">

<t>Depending on given usage scenarios, hardware support for secure storage of cryptographic keys, crypto accelerators, as well as protected or isolated execution environments can be mandatory requirements. Well-known technologies in support of these requirements are roots of trusts, such as Hardware Security Modules (HSM), Physically Unclonable Functions (PUFs), Shielded Secrets, or Trusted Executions Environments (TEEs).</t>

</section>
</section>
<section anchor="implementation-status" title="Implementation Status">

<t>Note to RFC Editor: Please remove this section as well as references to <xref target="BCP205"/> before AUTH48.</t>

<t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="BCP205"/>.
The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. 
Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>

<t>According to <xref target="BCP205"/>,
“this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see fit”.</t>

<section anchor="implementer" title="Implementer">

<t>The open-source implementation was initiated and is maintained by the Fraunhofer Institute for Secure Information Technology - SIT.</t>

</section>
<section anchor="implementation-name" title="Implementation Name">

<t>The open-source implementation is named “CHAllenge-Response based Remote Attestation” or in short: CHARRA.</t>

</section>
<section anchor="implementation-url" title="Implementation URL">

<t>The open-source implementation project resource can be located via: https://github.com/Fraunhofer-SIT/charra</t>

</section>
<section anchor="maturity" title="Maturity">

<t>The code’s level of maturity is considered to be “prototype”.</t>

</section>
<section anchor="coverage-and-version-compatibility" title="Coverage and Version Compatibility">

<t>The current version (‘1bcb469’) implements a challenge/response interaction model and is aligned with the exemplary specification of the CoAP FETCH bodies defined in Section <xref target="coap-fetch-bodies"/> of this document.</t>

</section>
<section anchor="license" title="License">

<t>The CHARRA project and all corresponding code and data maintained on github are provided under the BSD 3-Clause “New” or “Revised” license.</t>

</section>
<section anchor="implementation-dependencies" title="Implementation Dependencies">

<t>The implementation requires the use of the official Trusted Computing Group (TCG) open-source Trusted Software Stack (TSS) for the Trusted Platform Module (TPM) 2.0. The corresponding code and data is also maintained on github and the project resources can be located via: https://github.com/tpm2-software/tpm2-tss/</t>

<t>The implementation uses the Constrained Application Protocol <xref target="RFC7252"/> (http://coap.technology/) and the Concise Binary Object Representation <xref target="RFC7049"/> (https://cbor.io/).</t>

</section>
<section anchor="contact" title="Contact">

<t>Michael Eckel (michael.eckel@sit.fraunhofer.de)</t>

</section>
</section>
<section anchor="security-and-privacy-considerations" title="Security and Privacy Considerations">
<t>In a remote attestation procedure the Verifier or the Attester MAY want to cryptographically blind several attributes. For instance, information can be part of the signature after applying a one-way function (e. g. a hash function).</t>

<t>There is also a possibility to scramble the Nonce or Attester Identity with other information that is known to both the Verifier and Attester. A prominent example is the IP address of the Attester that usually is known by the Attester itself as well as the Verifier. This extra information can be used to scramble the Nonce in order to counter certain types of relay attacks.</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>Olaf Bergmann, Michael Richardson, and Ned Smith</t>

</section>
<section anchor="change-log" title="Change Log">

<t><list style="symbols">
  <t>Initial draft -00</t>
  <t>Changes from version 00 to version 01:
  <list style="symbols">
      <t>Added details to the flow diagram</t>
      <t>Integrated comments from Ned Smith (Intel)</t>
      <t>Reorganized sections and</t>
      <t>Updated interaction model</t>
      <t>Replaced “claims” with “assertions”</t>
      <t>Added proof-of-concept CDDL for CBOR via CoAP based on a TPM 2.0 quote operation</t>
    </list></t>
  <t>Changes from version 01 to version 02:
  <list style="symbols">
      <t>Revised the relabeling of “claims” with “assertion” in alignment with the RATS Architecture I-D.</t>
      <t>Added Implementation Status section</t>
      <t>Updated interaction model</t>
      <t>Text revisions based on changes in <xref target="I-D.ietf-rats-architecture"/> and comments provided on rats@ietf.org.</t>
    </list></t>
  <t>Changes from version 02 to version 00 RATS related document
  <list style="symbols">
      <t>update of the challenge/response diagram</t>
      <t>minor rephrasing of Prerequisites section</t>
      <t>rephrasing to information elements and interaction model section</t>
    </list></t>
  <t>Changes from version 00 to version 01
  <list style="symbols">
      <t>added Attestation Authenticity, updated Identity and Secret</t>
      <t>relabeled Secret ID to Authentication Secret ID + rephrasing</t>
      <t>relabeled Claim Selection to Assertion Selection + rephrasing</t>
      <t>relabeled Evidence to (Signed) Attestation Evidence</t>
      <t>Added Attestation Result and Reference Assertions</t>
      <t>update of the challenge/response diagram and expositional text</t>
      <t>added CDDL spec for CoAP FETCH operation proof-of-concept</t>
    </list></t>
  <t>Changes from version 01 to version 02
  <list style="symbols">
      <t>prepared the inclusion of additional reference models</t>
      <t>update to Introduction and Scope section</t>
      <t>major update to (Normative) Prerequisites</t>
      <t>relabeled Attestation Authenticity to Att. Evidence Authenticity</t>
      <t>relabeled Assertion term back to Claim terms</t>
      <t>added BCP205 Implementation Status section related to Appendix CDDL</t>
    </list></t>
  <t>Changes from version 02 to version 03
  <list style="symbols">
      <t>major refactoring to now accommodate three interaction models</t>
      <t>updated existing and added two new diagrams for models</t>
      <t>major refactoring of existing and adding of new diagram description</t>
      <t>incorporated content about Direct Anonymous Attestation</t>
      <t>integrated comments from Michael Richardson</t>
      <t>updated roster</t>
    </list></t>
</list></t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<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 initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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="RFC3161" target='https://www.rfc-editor.org/info/rfc3161'>
<front>
<title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
<author initials='C.' surname='Adams' fullname='C. Adams'><organization /></author>
<author initials='P.' surname='Cain' fullname='P. Cain'><organization /></author>
<author initials='D.' surname='Pinkas' fullname='D. Pinkas'><organization /></author>
<author initials='R.' surname='Zuccherato' fullname='R. Zuccherato'><organization /></author>
<date year='2001' month='August' />
<abstract><t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned.  It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3161'/>
<seriesInfo name='DOI' value='10.17487/RFC3161'/>
</reference>



<reference  anchor="RFC5280" target='https://www.rfc-editor.org/info/rfc5280'>
<front>
<title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
<author initials='D.' surname='Cooper' fullname='D. Cooper'><organization /></author>
<author initials='S.' surname='Santesson' fullname='S. Santesson'><organization /></author>
<author initials='S.' surname='Farrell' fullname='S. Farrell'><organization /></author>
<author initials='S.' surname='Boeyen' fullname='S. Boeyen'><organization /></author>
<author initials='R.' surname='Housley' fullname='R. Housley'><organization /></author>
<author initials='W.' surname='Polk' fullname='W. Polk'><organization /></author>
<date year='2008' month='May' />
<abstract><t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet.  An overview of this approach and model is provided as an introduction.  The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms.  Standard certificate extensions are described and two Internet-specific extensions are defined.  A set of required certificate extensions is specified.  The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions.  An algorithm for X.509 certification path validation is described.  An ASN.1 module and examples are provided in the appendices.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5280'/>
<seriesInfo name='DOI' value='10.17487/RFC5280'/>
</reference>



<reference  anchor="RFC7049" target='https://www.rfc-editor.org/info/rfc7049'>
<front>
<title>Concise Binary Object Representation (CBOR)</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<date year='2013' month='October' />
<abstract><t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.  These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t></abstract>
</front>
<seriesInfo name='RFC' value='7049'/>
<seriesInfo name='DOI' value='10.17487/RFC7049'/>
</reference>



<reference  anchor="RFC7252" target='https://www.rfc-editor.org/info/rfc7252'>
<front>
<title>The Constrained Application Protocol (CoAP)</title>
<author initials='Z.' surname='Shelby' fullname='Z. Shelby'><organization /></author>
<author initials='K.' surname='Hartke' fullname='K. Hartke'><organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<date year='2014' month='June' />
<abstract><t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t><t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t></abstract>
</front>
<seriesInfo name='RFC' value='7252'/>
<seriesInfo name='DOI' value='10.17487/RFC7252'/>
</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 initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference  anchor="BCP205" target='https://www.rfc-editor.org/info/rfc7942'>
<front>
<title>Improving Awareness of Running Code: The Implementation Status Section</title>
<author initials='Y.' surname='Sheffer' fullname='Y. Sheffer'><organization /></author>
<author initials='A.' surname='Farrel' fullname='A. Farrel'><organization /></author>
<date year='2016' month='July' />
<abstract><t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section.  This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t><t>This process is not mandatory.  Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications.  This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t></abstract>
</front>
<seriesInfo name='BCP' value='205'/>
<seriesInfo name='RFC' value='7942'/>
<seriesInfo name='DOI' value='10.17487/RFC7942'/>
</reference>



<reference  anchor="RFC8610" target='https://www.rfc-editor.org/info/rfc8610'>
<front>
<title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
<author initials='H.' surname='Birkholz' fullname='H. Birkholz'><organization /></author>
<author initials='C.' surname='Vigano' fullname='C. Vigano'><organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<date year='2019' month='June' />
<abstract><t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t></abstract>
</front>
<seriesInfo name='RFC' value='8610'/>
<seriesInfo name='DOI' value='10.17487/RFC8610'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor="I-D.ietf-rats-architecture">
<front>
<title>Remote Attestation Procedures Architecture</title>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='D' surname='Thaler' fullname='Dave Thaler'>
    <organization />
</author>

<author initials='M' surname='Richardson' fullname='Michael Richardson'>
    <organization />
</author>

<author initials='N' surname='Smith' fullname='Ned Smith'>
    <organization />
</author>

<author initials='W' surname='Pan' fullname='Wei Pan'>
    <organization />
</author>

<date month='October' day='16' year='2020' />

<abstract><t>In network protocol exchanges, it is often the case that one entity (a Relying Party) requires evidence about a remote peer to assess the peer's trustworthiness, and a way to appraise such evidence.  The evidence is typically a set of claims about its software and hardware platform.  This document describes an architecture for such remote attestation procedures (RATS).</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-rats-architecture-07' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-rats-architecture-07.txt' />
</reference>



<reference anchor="I-D.ietf-rats-tpm-based-network-device-attest">
<front>
<title>TPM-based Network Device Remote Integrity Verification</title>

<author initials='G' surname='Fedorkow' fullname='Guy Fedorkow'>
    <organization />
</author>

<author initials='E' surname='Voit' fullname='Eric Voit'>
    <organization />
</author>

<author initials='J' surname='Fitzgerald-McKay' fullname='Jessica Fitzgerald-McKay'>
    <organization />
</author>

<date month='September' day='18' year='2020' />

<abstract><t>This document describes a workflow for remote attestation of the integrity of firmware and software installed on network devices that contain Trusted Platform Modules [TPM1.2], [TPM2.0].</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-rats-tpm-based-network-device-attest-04' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-rats-tpm-based-network-device-attest-04.txt' />
</reference>



<reference anchor="I-D.birkholz-rats-tuda">
<front>
<title>Time-Based Uni-Directional Attestation</title>

<author initials='A' surname='Fuchs' fullname='Andreas Fuchs'>
    <organization />
</author>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='I' surname='McDonald' fullname='Ira McDonald'>
    <organization />
</author>

<author initials='C' surname='Bormann' fullname='Carsten Bormann'>
    <organization />
</author>

<date month='July' day='13' year='2020' />

<abstract><t>This documents defines the method and bindings used to conduct Time- based Uni-Directional Attestation (TUDA) between two RATS (Remote ATtestation procedureS) entities over the Internet.  TUDA does not require a challenge-response handshake and thereby does not rely on the conveyance of a nonce to prove freshness of remote attestation Evidence.  Conversely, TUDA enables the creation of Secure Audit Logs that can constitute Evidence about current and past operational states of an Attester.  Every RATS entity requires access to a trustable and synchronized time-source.  A Handle Distributor takes on the corresponding role of a Time Stamp Authority (TSA) to provide Time Stamp Tokens (TST) to all RATS entities.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-birkholz-rats-tuda-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-birkholz-rats-tuda-03.txt' />
</reference>


<reference anchor="DAA" >
  <front>
    <title>Direct Anonymous Attestation</title>
    <author initials="E." surname="Brickell" fullname="Ernie Brickell">
      <organization></organization>
    </author>
    <author initials="J." surname="Camenisch" fullname="Jan Camenisch">
      <organization></organization>
    </author>
    <author initials="L." surname="Chen" fullname="Liqun Chen">
      <organization></organization>
    </author>
    <date year="2004"/>
  </front>
  <seriesInfo name="ACM" value="Proceedings of the 11rd ACM conference on Computer and Communications Security
"/>
  <seriesInfo name="page" value="132-145"/>
</reference>
<reference anchor="turtles" >
  <front>
    <title>Turtles All the Way Down: Foundation, Edifice, and Ruin in Faulkner and McCarthy</title>
    <author initials="R." surname="Rudnicki" fullname="Robert Rudnicki">
      <organization></organization>
    </author>
    <date year="2010"/>
  </front>
  <seriesInfo name="The Faulkner Journal" value="25.2"/>
  <seriesInfo name="DOI" value="10.1353/fau.2010.0002"/>
</reference>


    </references>


<section anchor="coap-fetch-bodies" title="CDDL Specification for a simple CoAP Challenge/Response Interaction">

<t>The following CDDL specification is an exemplary proof-of-concept to illustrate a potential implementation of the Challenge/Response Interaction Model. The transfer protocol used is CoAP using the FETCH operation. The actual resource operated on can be empty. Both the Challenge Message and the Response Message are exchanged via the FETCH operation and corresponding FETCH Request and FETCH Response body.</t>

<t>In this example, evidence is created via the root-of-trust for reporting primitive operation “quote” that is provided by a TPM 2.0.</t>

<figure><artwork type="CDDL"><![CDATA[
RAIM-Bodies = CoAP-FETCH-Body / CoAP-FETCH-Response-Body

CoAP-FETCH-Body = [ hello: bool, ; if true, the AK-Cert is conveyed
                    nonce: bytes,
                    pcr-selection: [ + [ tcg-hash-alg-id: uint .size 2, ; TPM2_ALG_ID
                                         [ + pcr: uint .size 1 ],
                                       ]
                                   ],
                  ]

CoAP-FETCH-Response-Body = [ attestation-evidence: TPMS_ATTEST-quote,
                             tpm-native-signature: bytes,
                             ? ak-cert: bytes, ; attestation key certificate
                           ]

TPMS_ATTEST-quote = [ qualifiediSigner: uint .size 2, ;TPM2B_NAME
                      TPMS_CLOCK_INFO,
                      firmwareVersion: uint .size 8
                      quote-responses: [ * [ pcr: uint .size 1,
                                             + [ pcr-value: bytes,
                                                 ? hash-alg-id: uint .size 2,
                                               ],
                                           ],
                                         ? pcr-digest: bytes,
                                       ],
                    ]

TPMS_CLOCK_INFO = [ clock: uint .size 8,
                    resetCounter: uint .size 4,
                    restartCounter: uint .size 4,
                    save: bool,
                  ]
]]></artwork></figure>

</section>


  </back>

<!-- ##markdown-source:
H4sIAHvZkl8AA+197XYbx5XgfzxFLf1DpAK0SEp2Yu4kDkVSFhNR0pKQM7Nz
cnwK3QWih41uuD9IIbJz5jXm3zzLPso+yd6v+mo0KMr2ZLI+0TmJCaC76tat
+1333ppMJqM2bwtzpC7N3NSmTI06L1tT67TNq1JdVJkpGjWvanhgWbVGHbet
aVpNv76tq9RkXW2akZ7NanMLw5ydX4yyKi31EgbNaj1vJ7lp55Nat82ktpNM
cj/JZEmTTPYPRnfXMMLx9Er9qapv8vJafV1X3WoE85XZt7qoShizrTszylc1
/dW0h/v7X+4fjnRt9JG6MmlX5+16dHN3xOsoTTs5RShGqW6PVF7Oq9EqPxop
1VbpkVoD6Eo1Vd0CaI37vF76jyPdtYuqPhpN4G347mWinuf1zaIq/gKP8jpf
mvIm/LaqYSEvat2ViwpWrK7Op/CtxdHGD2ap8+JILWCUZCaj/L7J22Tunkwy
g4ABmAaWcbkwAEtb66Yx6tefwy8p4PBIPfri2eGXnz/Cz4CFI3Wq6yUgL2vp
ia5sa/jya1Mvdbm267lI1Fl6Ywq3mIs8XWhTuG9/3GKWPEpicJS/2WJOEvXa
3LVV6VZzsqjzpq1WCwDQ/URLelfmt6YGyNaqmqurrq7N2sOflvv7B1/8vqGv
E50m3Y2d5FUCoxo/xav8u660Xz1g6AKfT1J4Ph5+VFawmBZeRfq8fHFyeHDw
pfz59OCLgyM1vTrmj58f/mZffvn1/rMvYZnP31zK58PPD+Hzm+O3/Pk3B79+
ho8+P3l7uP/5ET3y5bND+fGLAxhnhGwRTH0+OU080+o6XeStSVtgdGbPjUfa
1XIy043JJsBvd8C7k8zc5sDmmqQFvHX+jbxk6Vte7DJg2+m7U1zX6fExzg6s
ySLpNK9hVnVcVuV6WXVNKHvoOcuZ+LfszRlwZ50jzRX0td2js7rMTfyTvPEH
2E14pMybdBG98gdd9n7Z2H//cEQDQNumzk2DaD2Sx45PLo7U7+SDYtFpMpBx
DZJIuzDq4KDO8DEg7tLKYhCyJ9Vy1YEkUyAD8cOyK/OUcNB4eceDrvQ1gHLw
9HBy8Oxz+i7TLXwDMvIZSryuBrw2EY53pvylOi4KguJPeq1Oq7sSOBt4LKOJ
xuosy+ewn2MC4rLLS8CEeqG74qYUyC7SE123i/XOtp25TODFDGC/ySPMXVYz
U7fxb5vomwJobr4/VF1dauCkw8+TQ3ng9M05rOZgPzl4+vnTJ3PdJYf78Gl/
f/9wJ0LFwT59HE0mExBiKHfSdjSaLvJGgd7qYL9blZkmrfMZoCXQU2rplWHN
ylAHynDllKHaRSbZS2BQkHC4nbdmjdpsaUAmAjktGwWTnyx0UZjy2jy5NM0K
thPQC4JjwmQPQ+qC8X0FglIvcYABHYwjgfJTeVF0uJjWZPRSZuZ5abJkdAzj
VNfAPsUahlPXBjCoC1WBgLrNzR3goOpa2nonBWBYUxjERKPa9QrIrSjWqgP+
VrM1rAdkFgKM1Cur00isgAFQqhWgCAFa5NeLAv4HACVA7vmtTtfwiGlw3vhF
YICz2zwjir/N9b2Mr2CfTAFA81IrokSEHsZrzfvWchO/Ymqg3TKr6gb/Qrx8
A6Q1z4GI6qowyYjIYJlnWWFGo8/QZqirrCP0j0YW3dOBXb7iXR6rDx8m+McP
P+zRslH6zYvqrgGAlqsKcQYQ4WQNzR8QVDNG2O8WoCkdWPAabHZvj4E+ugL2
wm8VmT4wVbuATW5IhIC0smt+1IAJA38sGYYSSRooD6c1qA3ztEHiNG5WeAG1
b9MQ9QtCkRhw4CFIcgsnUIRueB8iy7Aq8jSXJbu9BVQT4HpWGPql1cuVqSeG
HmjVSaHzJUo1t9ZPWxROwPTdMqkGr/OCeR8e2y8fExSPLRoeA4k06g4UBP4X
cXBSAdyrtgOGuQD0gHyFt+165O0B/DwmUkj55cbyIkKEg5KFexxoVU9DyYYg
wjcHxVC70IAAWOHMMGvCtjUrk6KgpinA2i4IEU1VdPSmHVZ2f1XnS12vYaPT
TrRQOHfeWL4K+DSUeBYPCUlnZ9tbAO2qEUZdNBUCqlerIofv2mpg7KpFI20I
5bA0XFEyurILvK5gyE2YEe0tKI3RYxQ1t0zNMEsDBAKw5TwWi/cV61AYYwC7
8BSD43CmdrPOEOAoZVJwRlCKIQWYW4tgFKqgWZdmbwwQmJIIHV5xshAp0ryH
qQCGotVPMrQTrwlrM7CcjLGyDNbRGBJmfRpP9QppJgN3AcV+2ccAAHSr61wj
yCwLGzO0QkszvExLOWJYgIqzVNOw3GwrWJFXMgQm7Sa/glPdK7Z3wbrbI92J
b1rakDX2aQfk8jlQc7dE+hz3VshoZeKMwBa91+TXBI6XkWv6ZXWvDloasFgy
1u5DRK7mdbUMBQruq3YSNBn9aZEX5tOoGvDctZNqPmnSasXvWjCsBfJw9hkT
6EBcy1VhnNZj0oUfBqRUghpvCg5UXlZgIqz7VhBQSCOaoACNhgiT/YLlL4Eu
SJoyeThZpz3jA3E5wQYs6TWyRdoYICnIMnoLtiNs9CaWxm4DoiWNB9YD361W
tc4beJv0z9o+hTOclbd5XZX88lQD07XhdwCeevvH839WJ2CMMkUZ3CBA/j8n
n+9/eftUsXGk0uABWKxQIEv3Dx/EN0NJTjL2xqzRJIAd3bl4dzXdGfN/1es3
9Pfl2f96d355dop/X708fvXK/TGSJ65evnn36tT/5d88eXNxcfb6lF+Gb1X0
1Wjn4vhfdnhzdt68nZ6/eX38amdAXpDEROIiGQHMQRZkM/IUCO+A8/h//vPg
GSzwf4hf+sMP8gH9S/hwB64Pz1aVYCzyRyCe9QiI1ugaRwEzEsVX3gI9k6pt
FuBpkCADdAExnsLmLWf5dcc+HmEQaQ2Wu2H57tD2oDGwRHv1PbJ1Y6VANQdx
jzZNleZsJ9ZIomWFf9/l7YK2Uedk0K1wR40oxXA6jy5rXGYVsASMokqTIoHW
OayVpBeLA/ELALHo+4shxdwNbCPOMTy6QoZDbSTy0MaqktF5q0C+osigYRse
NzNp1QFfZ9YGQlbHSXIjloB5j77FNUuRlV4Xlc6sLbzJVmjWg/xABySwz/pm
SCBfQim086qCN4G2ch4+MqlxV1bAzXZu2FCHDzGqnATF58fKJNfJGCQLvIU8
1TfymmikEzKqwXBSpxRhULtagaN4XYhZxTOB73XGgjDQgbhk+phWk6JKiSyM
lwCo89Oiw8iTVlPUHYia9+Bhsx7wT6rd6dnZ3lg9B8t3Vmnw2i90CUil3wDX
4EIAXmHrdp9fnDR7kVHJ2mC1WDfoVeE2IiHgn+g9gfo02ZMcVC9C96RZ5KbI
TCYxgJ4Yg/ERdcosgUnxKYoGGHVmXbddc3W2h1PY1byFYcmqvwAfB3GzO317
sbcHjrnRGQK8YU8Bg3ZFhps+Bw+0yIGPiXtE+yBV4Uuv9NqgSRIKZR0qMeCE
K3Zq1bPkqZreVWpqtyNaUuzIRCqEzRBrPOTW6rhvTnz3/BsSxp+pK2JDHAS5
rdxw+skMRpBKdiLAyhwwm6yZZkFsIq+SDcc6Y3nA/OPt5BHuI+8O2t0+YgC6
uyutT4i2F9onqWVtFNG1+a7LEcVknxB3FAa5xSzB0gNQZzn748IsG75HjEkY
MTI9+hsf8I/jCvLRkI0NeXB5s2BliiouA+MUsN45M8yUyAT8ABrEwNZluoBt
zv8iIaWAKUKVClZ7xeYcbNqLrkZ+WYI5jLpFUIaeKtt6nZd/1yia1hWaIrqu
yahAB/L+QE0fD8noRYVEhwcOaHF0KFoIn7U4vkifQ4O6jXJu8TqSjVbMgcIj
663Or6/hJxgdBjNZLvSbOvMbTGn0JoIlRyhrunQx+CriZfNdhGXZmOKWhgEw
SZbHSyf1N+QKBZGlQfMB3ykzNkthRqR2QJK4+TPd5BYqa+QjDYvbYZ2MwM8C
9OMI+EzX0p+kIc+mL8D/23BlWWKs1U1esq3sp2m3rCfgUH1b5Zn36ISu/A8o
bVCr1jhN081aWBHQOmzySpM72YuvYdhbXCjyF3AAK0xo+tj33ECn+PM9lA9h
KfIqkf2AT1uyUywfsn1/bxB9BE4ZiAX4fxAKZE6h86QpJtGkQDI+tEDalam8
oPCWuFHO+2s5okAuFnyE9+pAfgWmGCmQUMizGstxL+8AVai8gWZB1mDYcYzH
AhYvjSGrDsOYeDC4Ca1TTnPD37NsAC8b3qOR/CtlNYEdp6HnSDwoLu4W7Fnh
U6h+MESXmGTM7i7hkAw7NgJZVs0wjjhl/0z8fXJBtUV5EQWi1ELT7lUzsj81
SoyMVys+JsF53jSdjVr5z+yTaUZ0a56sOhDEKYnglc6JpG0ArDcyqo0ACCTz
pb4RBy8YZrcX/dPhj4Gg3gMW0XlhV4yv3Fo7MOQwGwSB7cGPt7rIMxs/iPeD
EULOR2RB+jATRQXcyE23WoF3L9ZdNFYzduML3sjpckSonNHoMEeUYzRIVSYt
Z1lYFd81xpuh/jXwc1jmW03hkS7BBBDYvZi0Z3yaq7/J//ff/6PZgnUXhNdD
YIJUKnQqe4r2AGAOjX6/7edWh3tBApqQAlkdvISWBP4quyQmlY62QzsnOwzb
g+DBsLkFzodFyMbKacUknHTT4uaBXO5yrzlbCmYJZyAjqa7Mv+vMAOQrDMqR
7Z/0LTgQ46CIePliG1gakjMAdlH0cEg2POhkesBzDpSeQuCk3Bov75oh+CIR
7faG99i8zzkacS901sx1z4QSgaQp2IJo++VgkoNFrgd0dBS06WYNG9+kEj5z
8zWj0Te5Jsk7GCih2I5fIjn2Vrw0fu85VI+jbMZVUEHO8eWZISpj4mFbYRae
Y9Dh1Ob7IKTW8CDYu0gUpbkbhpTIa4FvI74ERnrGhe+AFedsTg6D6a1j8x7Y
CKwQZlHA7oB7k4yGfB4hYPgI/GL1HPkqwC6DgCfgjCg00cjeZDYAjYTaBdEj
h7NaDmfvNNLXHZry8hP6NsctQwrG3o2aVW1bLbc4ZeNADG14k2wWwhSNDQxc
VhUbWORAqt3LarqHBo8nCQHV6ZwBmkBw4cUGWY2DszAER27KBrwaXrkOogjs
6jTBWRGCL06tPQPLG6br1ovAjRWJOs3yOZmE4M5WXU2GoS7jSAQAaoo5M2l8
vjkMRO2DJ2GclUJPYNrnJSKDpkeZVNNRrh8pjty0oIZVxQCRAGAf2AmFXQmQ
gLoD/gMqB1q3I+z1GJrI/H6T73xQOZN6wxj+8fE4mp0gaslSEBi3yCW0ZbJM
ZHpFW68LUIzZ2glbfjMZ+bdwGAye/cXU1eSmrO4ApdckaKt5448Wh5WhnGGw
RzygDsWwBXMS5kgxuaWgwwSU29EwzYKioAvvTktgwm/tODAtnWA179HHRrlK
J05IPIGdKzYaQs0UY3V3zzQJvaaAtVh8hDYcUUvOTgJZIxxhyK2v4zhIHgxE
NHAL6XQyVG+MWeELeR2YtHFgDgi5WuZ/MSIDAyDIRCKP3oKT8z4kggEHhQMz
Wu6jbaYN7EwFUnlhghCTgyPbsJLjM35GxTyvl86eCG2TpXHCgNAQnAo/Vsfh
2C7qiYQlJz6OF9AvjINTMPQMmR2JPgyMBec/Pfs6IjyaIRze200kiobZwsWC
vKIIog6RlY8+LZ6KF/mNCU0N5zqTZMYUEpBcC31rzwLC8QLBBcRQZzaaa4cN
MASsLWekuAkuNoXBiEKvxgPGDirY7hrBgdkw92MzwIe0IzInNNwMMCGePPsR
JHMlOB4MUSvBuP5i0LRdh7IdFOgi3IogdyMKXLN7/drmzam3taGNweB00xez
DZqUGEJf4XlDTT7IPQkww1ELSd0ZD5/JrcL52d+hQx1FPkHPYVK5C0RaNG/O
GZzZOfMWvjtSU7GFAdV96Ptms5bYxDUAtiC0D9tvFl5SvikfY3clHwaBCktw
2tDwcOb2xfG/RA6DjVKOUTTJjxLCJNNYDzKV2v3ff3y7R7FX/5r1ejaiDb3n
tJVTKN8pWuHkSWJR2DtMPg68LULp4FNDSHF+GqEkpDKrRERKIODBLOPhKeRQ
kVh+vQIJXOvVQhK+BmI2ed/LkeAN/ESnp6GrikdbcvCAgg/YBDgKyZf09VaU
8S4IXLJzZC0OEgZ9FoYOIn8kqHWKwc8cf9qAGzfGYodRcmUAhvbIEtrQj25D
fOgDTADwvMi06KmHR1ucqsRykKNlGlWOf2wOlCgTkKKDkIirMFvzrkvoIfLh
7dkfjxeygD+PIDDuXamL9ZPInWNeCvnKqNzJcCXpAmtyFPUCuH+BSWmEypiW
3XaWFJ6AKZEWnKswt6/GyU0lnk21VdWPLago9DogM2nOUOrFItczip+YJAS6
WWzdkGkz74pQITTWQ0f7yQVD/KlCiIy3vKsA0wA2SHSI9Ma4/oQzDGwGJ33l
TgXtRnJENXbBbM6gJGKQmguTU3hVvWQ70M0lGRqfqa8lQn0eJIDaU0SJsUgA
wSWktVvzRW3E9xaP+QkOcF4xOj+UxZaMvtF8WEOmkMtUQ20lf4+D07iB+YRI
TE6WY0jm0dG7zU1VS5t9s8vHPG3OgYKBBB06O7UR+VCFiJsjh7Y0LB5eLw25
HfCSnL8no3cFmMqwNeJ4BFp7cDHRSR/ZcnKwgacPIJRFzG0/0pITK7T6AAw8
N7NyYIA9RGFkyYCeV7uPtHxnv3q0RzT8GAgnQ8ZdPyZZ6W0nm7O5ReXD6EsN
zM82qjPNUNLRaykeasKKybPajCOQ4U52JztSuhHVjbaLgGh1InmxoYcAwtip
AB+8N7rwyVS3QcgyjAxg9BIcl2zAIRNfzluZIjMC3SaiomSYSUP4UwHvshi/
PN4vkC0mEtMmdOUY1Cw4n7Qw9GLH29ScOj9tcIvhN/ji/PTje1sbOvApW856
FHSSdAH10PLanVjrWQ5xSGUQosZhyGpCr6aCTd2+GuYdAdI72j6MgmYGbWW9
14+wR8BbOESoxtZJ41IYf/qaztCVHl4QKh6yZ4fMsIeZ1AmKNA6wtZT6v82o
OT/l02C3o43XL0O2i92K+wZ0eVIy6Lof0e/b/zOUABsL7QV1+gE+f7owM6nG
WMM2wG0ii7jLfQTakHu815Ka74gqzF7aiD9HXO+DJHkrwZHRS/gZptp9tKA/
Ps5xVpqEx+uOKIIV4HG/AQs0SOSCMZ9UeEzSUnYnu/7eyAkcNnas4qANUQNh
UwnQuolNNgq5RcZm3ddH4hxS0gIdHGxLmHEGQ7hOl83mliQbSDEK77y5bJeQ
FxnoJlH9HBbw1suUk+7ogDejPWrQMEKrTSys3Ucp/TG8Q/KQnGmju1OVsghH
KBs52xvlGZsnEElvcHI+BxL3yAdEFzTK9nXaRc5XnMq/rkWnePRjgMHbhg1n
71diPg0YJfas0pqA1uLijEvWxM7LIJOFkgthTgGfTSVrVSVYV2MdNYdy8N1O
BOsDSN94gcsrwgxB/8g3uujiWFGY+5Sofz0DPVvhLryusCTs1EeblpRNIcdN
1QxMUIOByXxuj1ZJrfSnStR5I0c3/rAhyOi3MCPZM2z47Fex+3K3cJYJ1sVl
m2sWk9YdVX71562oGSQH+d1Ji42EdiIM59DgcQ0fJJBdBqRclYl6EVLdxtwS
EIlryZkEL4zGIJhkJl6eX5B13WchkgNLrCrI22Lt4gdWvMMy1vSMsK8PT5pM
ag7Jdm1ML9IZUgDlO/YA91Vunol3ZeA9fgg9teGyJCe4Vja/ElOKtdA9CXQr
XUBFFsJGImbcF1bcVMIww/ogUEYa1tnNJnviQYb+obDocFTYSxoPDftRWJcC
bDPPi9ZJZvyec9zZnuLqld6cVd9F8jkbYdAOySODoUAS3y041A80gCQfnoGA
u2hJmWPdprHBYd2HO/S1dx8xVQRxLvvbVmU7gDouFpLzLTJtUXpuNTs5+Rr1
fc9+GrbrSp96sqU2ITqIsb7XWGDkDHurl5N7woab4TzMEA2yUZphBz7ZDFL4
GATtwZa1sR65P5rk+DlOjiT7QriXgum9sCnXdziXlL7k77ZsbFyMKK/n5DBm
XToMAH4G3l5192e6JANDewMD02BMyUrRSTbxYb02ttmPA2bCgGfh6o2sgMzy
a2OzK9dRCU0upxKbLTz4PGkwJwQhY7xwgWpc4zV4LHCQDFQvD1Qnjw6Tfknz
0FNPk3trnIHHkb+s/UHZFY11EWwKAWBFA7UvPfzWNQ4rbjfStyNjNCziGoyX
WN9SKiZd4fHAOc7YjVL6DMleeSWmdkp0EoOQHSceUYUI7TVVe0mGnpvbln9+
UgXlmIwKZ4VHxDvuHXT3zRuKx/dKq5jQsGfAAJ7IRscEYJBp1zGuJMtAK3aC
OBMM6H1VScqiNR1daMd5LRwGofQUll48hFjLkuic2arVZQWCG75F7wfraDet
MnyqpQL9obAkZlU8jMRHf4V/o2Ti/iXqE/+F746+96T5/acO9L0XaN+PHvlR
H33qQOG7Ixn6J/z7/mcZ4xap8WtJ7arK3ZZ8qEB37j0Yjt/+TrGP92PgkDF+
wj942Y7yT4xlMXOs8Nhl2h4rF6ADLozNxb2fCauMhxOsWKJxd/vTPGAMgQOx
yuOY7OTT0PvzrMXGSAMiGURkDOReNIZfi4u4fjIcP8daZAywnrra2bGTh//7
3eYYwCKvqusfN8bPsZaNfxbDTrnsGqc9jYA7Vi40sPdpwGwYi+qffvszLYhE
PgcfH6QkggMaUvuYEDpYJARfgJonu2+wzEjkhNX+3qU7dj+JKdo4L2H8ED/G
Ohab/tU5q8qBdZKuZDtH1Hkedz35DkwQ8Bsp4Vm3ut9YRA84KWw0oB9O0dQg
4Tgb2zBtzefQXQlGUZanZAmDgVO5sxKLz4lvBkK/9qOp1x3Y3/DZhFX+ztyg
oT7uADaEK7Y6wq2itD8yUjmMHOebhp6tLRjxT/T6a1j7l6UWnVjce0CwLQje
K0OQPNxaque9Y7otqh96uPd6sWgbxm2HMJyZpx2mq4vT7VBuE2bdKXD09JbU
Xq6cccXAXBBg4x5x0GAJq8tX96wL9vpC2i5gzCyl89d7dhxPVsE2p95dsT+x
ASaWANx7YvWRKkyiwX7kqNR1jRVYlAnOWathGMOpN1u2Ep5mOayTBKka4/Ml
NxKwk9F5kEMSAICNK5Z5SzxJh5uU2j3XKGOD8I1zWDFez2WhPnGm6mVgbzl9
i31hzxFBHJJrcFamRrnCknNWVaHDbdB0tGWnfp1YWkBHE55k+PWQWF2OuRiM
vgeTzz6lYky9URHx/PzNFa0aD3nvbIqxWzECiWe4KxZsdFomYYQwMCMRR2yd
gM0C8TBP1V1J3Weaat7iwEAo7LlyOm5ad6lLGLaBI5zbKYS4y9Hm6X8IgMtC
24woYYc4q4uCQq6eF7yWIo7AiaWDAgVP4Jicw73EGGk4hZoVUtMsYWU+9pfk
/1WV4xnni6Csw+d/YfzXhgs+fGikS94EVj+REsUJxfkyMROpjAKlYVNxyVOP
Hyhi3tios18coNsWtDUxErbG8XqopxMpUb4SrG+CaD2I6IEMIz598s13Jq7v
k5Yi2FlYkYVC0Mfwe4lhA+fz/ei4J/CPBfZZ/c5zjPPEsTQfaasHe5sNh9Vw
kwBtHQgCLP35WH8w38uDEdELr3GoVtKDe2Gz3nka6gFqiNabodd3jeMED4hw
/SNI8HG4fkkO/vYxgn28nxq+74UI8J+Y2YOwDX15Dxzf27P9U9u6oRompnvH
GPySoXygG/loExvDtPiPEMGWMVZds/gRzn20LzzGJwcZ/utDBE4rutDY3ypE
8NefsqC//ixRwv8SiXiKjQc/DZB/cN7wGCHnEVp/KZz3AKaj9f4dB+c+bpSF
BrXL8naROawCm/XKItGo7IXswEfmd3DA/vPcjoYPn0vVlQ0dnVFtKOy6iRLx
rBt138DeiOYy7dqdPquNoTeGQ8u8jxRuSeP6PFJri+HE9ObeIGBio4Qbp7Fg
pt/2nSGL5aH+sj6bgz0WihXIUe/l2dUUazHevgGH1KXY2BZ6Zpk3tjeDhs3U
MPCePdHVLjwKvxof7JNCUofYO0oy9Hs2cL5MSfW29YJgeRte7lvF12fBIvYY
Rc6P4+IM6hYVHnPahB4X2HGEsKSGBbJNQXIoujgUhrWZ5eA6x1s2SBPjeNog
phvUw/dTKH1HR063wrb+P/wwBle9NdLNRyIcVKNAPnsvRMxkOrRkzmGy1fTq
aVSH6mMbkTlLv+goJB42hZVuALgoTNXlhtRBobsrxldT/P0KF2lzvSXRbHp1
TC699Hgo1r2cQ/gdE85GMIDgyK6HaA/bEBbYeSq9adSunlHNi7FfcHa/VtdF
NcNoDiIano/jN9TkGetP+SXvq4PLezOhezJMjaUs/X42PgP3AQEeCovbxNpe
CuEw8iU327alk+wu7l0kR/u9lnBxFn6YTWaomZljW0EhttMLwhYYZ+4/Qk59
IGC4wNiywCZQtqT9TksxGoabtO8VijEnOsWArdhoK5A3tjXWnFv4SZcEE0h4
DIJ1VEwHH1xg2m3FGAULfKvLnCLniQoj05jOnVKnTyxrxFptJMsM3pXkQJZe
nAuFMi/cNZndbZ2olM2Ni0NU+VKaCorrGTf6e0AA+7PPPpLb84/IyEfh+iVG
RiiqgdF16tb54xIf5PVVYEX+bW3nX7hP82P9kb9Lnwb//fclHPz3RxP+EUz4
/4fxfknBhIfw3N97MOHeG5iCMIKcnNtDea5dDLWUrQa5Mi2dNWNXkY2fXVJB
cFZNB4RllEASH/Bp5ZSpdyvFCB/4xXZtCjvjBJ5X1G7a+eTXjtt+uvEbrK3n
TA86pN6RH/DzXEW3AG0r1sSV5UNxqmosYCpJuZnlE+yyjndhRVvADhX48It8
Fd7QRDUeDmbp9Bc0XrD1KzkFZFzvTcZoMrK+ky2659ol5/DbLUKicJNEORFB
VU2wEVKOjN2W7FBxyMeT7s8Q7LF1slu26Kf4KsD76K3AQiN/xTXj4tIT6Ro9
QM8P8UVGn6lj37vhODhAd/cKXTINSeuLU7OSbLwgfz3ViELqsC0JMLXLPApa
Q9TBSFQGZd6b5arAxu+SVJIP99ZuXOod5qBjiwCpR8aL/ka9L4jHpFg2i/LP
wq2V/Atsv0ixKOmbFYAIK+s4QOPqHKS3bXjjoMRHuKMUXXaUlw3fOoAglKYI
AxC+8Zm73kLRtT7wOyFxrKavrixw3NmYMsu6nCNM8dyu1wbRj7Sfpp2IMEJz
2N57cuNGABV2h+fkH3dlg38IJMUSO11ieSvnDGFOXa9UDesGal02VLeBDdi7
pYhjSigxWQQRb+NFR+UYcS4Y5VYGuUaeuJb8uI5Tx/q7yPUjuCzfsSZUGSjw
SmOYIakkm4WTTfLpJZGOqfG94WtDKC8qitraRkNDQwRt62CxL3WdYVbS5AxJ
MCUkP7niQpceT3Fn7o4qm5vUlLrOqwaDjzyCK49hpUKE1oDE11z6HQWsKOFy
LN9R76cCZUNVx43zfTEbKQ6+aQN5U+75iG4EEa521WU9pv4Tdujh5DYYc1Ha
S13iuh6uVgnf5F4VtrkqhSQDCrXoc7d7+us6Xl5d7I3VW7k9BHboXYlt64kY
XtgbJNTu23cv8NqRK3t9iHSjGId3gbibTZrenSLTszNuK6rO4x5xV/DfDoQi
Vk3jxl++OFFcSn2k3hZGN9ya5tbE5eJRrFLSh4giP3zgK2l/+MF2ljp+N335
7DdJr+UQ3mZQS1fnhmBArDHa4zZ2roLOiYqozXPe9O8LE25G1YQ1RxUnAFrN
EV8gzUlaedCVlKKG8JIu+reO2IWxCg5a/lOzmh7M/fr6XpKybhrur8J3IODj
Od3rkXIran/HA99mdE33IGE8HaFuZKeAWkeySSXtn836LHK3aCzdDyyXXotA
UnO+r8cSm9EaXzhmA4p8T0N0cUdZKTOfIzeg1TRDyxb2oaQsdmpls5ZaOa+w
fKYgTcsWA117ITegwWyEDXfhQVUH7UBKSf8kHGpJbifJbvtlYmJZ3dk+1JgW
CjSBGcuECJelukFfdNaU1/Z+AZjT3p1DOXnZrW1u7bEsrRV6I6Ewp3bgmHiY
IoVTvWLIFuPRDhHGXY7sg9Y1Ni3KzZ0N4d/JLenUJqWxxHJdKrypMEpwJJPM
NyZHsLjb5wK9jRK4hO/hk7xSvIB7LHYvAkqaFjnYmfPwMClI7oEHVljuKYVS
XkHvzHR6E8xFzZ/asPckNcm1d8bSudqSsEq3YKGDsrIKJiDLzUVzZwBimyBt
tuHUU0wFhdXtsGpyIs3UnFsNlmI5kYOgHsHf6bBUQ5gfz9nkmgIh+OAC9HOX
rYj6Sq5jCpuqTa2WwC5WV+fTHlD80GswzD8KHBI5tYnYOXl5zGb6xJnpLKGG
rkyj223wkK5ujxS8eXl5PAjDu8tXHwUBtu7f0MYHLuDfRVvau7XAYj9Si7Zd
NUdPnlzn7aKbJWDRPfEImwAKnmCWZq3ZSsLdJyt3SgfDmXnUqMKAj4n0tpRf
e8YW+wk7REhYPbpjDWcQLbZhyjd4GXvFd2kD8LO88LNwUrW6lUd2Hx3M0tmz
L758tOcXTO3KnTtUWzxvFI5aKgFDlM5GXUvgwPaPNJC7oO34rXpxNj15qWZV
hiZEcIx45RKZ00qvJnPTposJPwaqc8PNUbT8V3mKdehSQEAb7TZMSx+A/kXO
GSOLSnUCOiczDXfPVtqy/0ptGQn651en6unkpKAWHTuvzR3R2c6lIWG4AyqG
YBkkNLYG+WpWuYEofsB3g/flw1SqPwckYpK7NWj8HWlfU9eo3enJ13sR/don
ryRrHi0akFC706srfzPplrvS+Ko0dZjsc5+D+3Bngw3DOBQXus89zUPZp10t
Dyc28Z8/tU3zZBB5ztk/IX3HsAR+L/WnJEPpw4fJyZvjt0BQuzgnTInEljiz
dv1kz4GO9eXYVOZ5XiJFv5nRQi5tZxIt1Do5ef7m0g6Ii0hnVZ3k1ZM959q2
dPf6BagZDcxzlt5gysSSPyYGP/6+ydtk7iRGkpm90ejDkfrsIUn9eOmbtaER
eHsL+Un0GHphg8V2vmgvyhERQom6mtxpNmcGjtCxiAG00C1FmmB4slawaVB8
1Viou4QSomsUXXWFpus0MPt/zekBVWkm6P/ZK+SwJa/Cnrxobi3c13tcTcQl
iESfGi3eRqQhVaGltV7aCwGoMsHfHBtWh5BY2+wYZRuWiUdUSSvtKHEp6KKd
qOOgQt8W80j9/vlbjKXU0q0swjdNE4QreLp+7hXf6NAvt/C9Y8lUNO+BKYZQ
b0OjAxiJL/ij9AqXIOCumMQg4hp3GwQMt+Q4Tm3XMoktvSn0XD039TXm+oyV
ZYJL/C+4O5XcpvoaBdYSEI6DnHBTtFfV9Wg0UedysQgZ+mqyv49f8iPSWt4q
tf19sbX508HRSIEBcky3RmYGQPcNJfDuepvrRE9xpQeJJIzHGHexhoNM7eIz
xR49fmmq+lqX1LPfdRiBhdCP71aZhLp6ilNelR5bO3y4tMOEtuNbqewEcFPG
Bob77D2UJ6enr0iMo9yheCGp1cBdAxGOElx91yGru9jhdrQdRGg7PBIwxcjH
FCHY55kpxIHaBjfdI0s2AXlKzirYvAj+fHKaBGsc9MAtWh+A0SlebIc+Q0Pb
4FCRymo3rtd0O+zUPKpg3Ta/z007T2Brk+3YOoywtc/Ls5fQW/uE4OoIatfv
ZtOyCgkQr6fGIqzVotaNYDpqth8hJHiOmosMxbfLAXy5QR7KQzSbpm0KT4PC
zu5jWWjmRSfOzeEYgZbox8VosMr2nppR9atgfb0B+kWaOIwlwODre0YIU1F3
r8iC3RssSA4odKDPEi7RF4o5GJpP2nm+RPQ9lfdyPB0vaQxwTtyOxjSzvDeg
/ZFAX0I8mM9pmhXe8VgLn1M2mssuDYP88cX14RphyHPprOTcYr6DNqTXpf43
gN+/sutulNjrXSkRb9Y2mpNbx5Lhuwb6gzgCoWuv2WGvhJTokvcA4xyWuF8m
OXZHKFYU6H1PW/VQqfE0QAogFzi0qoWXQX1yk2hANXenGm7eE+xB5m9cI6eH
1tHeVVRNKJTGJ5bBq5uT0xlLPI58HYwThvlonKCxUcYXiLsW2ffe0MTvblG6
m2ZCtNy6aii0MZlMaDfZVt70G9GWQAa6irxRvkmpISeCWWrgDDDoLdZvKuZ4
0g9Jd78G7u+G1kYh7TuOaZ8sPHBFyZZTyY1uZ+yi0SHNnE8u2MnppEEULc33
zu7JDX4bxuuIwW2W8Eo6SXgjEdaEx03PrZXrQIuatZKit6C6H2oTHNvZe2/6
Aow1cuho8hOXksuOv9tvbOinyta2aQcZuFLQGrYPt8mxdlo8icAtoYMIIgIQ
fVXdct4unpjjAa4Ha4fspx1n78dH2mJkJZzZycx/eXx+MXnOkY3fEvonBDd+
t1ZPwm/sSugnPO6Mn/2t+le1AIO+OsL6+WKs/ifdQl93tsjgj5MTEGnhPU6j
ocwO6gcCY6yB78aDT6zSetJYtXkE0/4K/tem1xP0qia6uJ7k2ZHqMCM4acDc
VYcIDKz+8NvjV19/e346OOrgPxwbpotGO1B/HoZr4N+fH/Lg4HB/jjAc4Z5Q
HbjDE0tCR7jIq2+Pp9Ozq+mEaOEjkLar5aQknTZxfuy9uHf/vlL6ZoLelX0c
UNxrshLeOXPfYLDUDbhpjVyCkJssJ5un3thU3NPn374+vjjbMj6Ne/Lqzckf
vz1//eLNtjXZNhASjYzm+c2WdwjMibWOGqTDx/C/DWp5MK3wv1/xGBPKCXzY
Vgz9+0ptZ4ZPHe3h5P6pT39FS+WumZ+61i3zWGLym06kRDUY8b4Ov4+RsvaE
owfR88+2Po9dLz/hjUbfGpGRg3xPiW3/DyBArnwAmAAA

-->

</rfc>

