<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.37 (Ruby 3.0.2) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<?rfc toc_levels="4"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tschofenig-oauth-attested-dclient-reg-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="Attestation in Dynamic Client Registration">The Use of Attestation in OAuth 2.0 Dynamic Client Registration</title>
    <seriesInfo name="Internet-Draft" value="draft-tschofenig-oauth-attested-dclient-reg-00"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Siemens</organization>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="J." surname="Herrmann" fullname="Jan Herrmann">
      <organization>Siemens</organization>
      <address>
        <email>jan.herrmann@siemens.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="10"/>
    <area>Security</area>
    <workgroup>OAUTH</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 55?>

<t>The OAuth 2.0 Dynamic Client Registration specification described in RFC 7591
describes how an OAuth 2.0 client can be dynamically registered with an authorization
server to obtain information to interact with this authorization server, including an
OAuth 2.0 client identifier.</t>
      <t>To offer proper security protection for this dynamic client registration some security
credentials need to be available on the OAuth 2.0 client. For this purpose RFC 7591
relies on two mechanisms, a trust-on-first-use model and a model where the client is
in possession of a software statement (a sort-of bearer token).</t>
      <t>This specification improves the security of the OAuth 2.0 Dynamic Client Registration
specification by introducing the support of attestation.</t>
    </abstract>
  </front>
  <middle>
    <?line 70?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The OAuth 2.0 Dynamic Client Registration specification described in RFC 7591
describes how an OAuth 2.0 client can be dynamically registered with an authorization
server to obtain information to interact with this authorization server, including an
OAuth 2.0 client identifier. As part of the registration process, this specification
also defines a mechanism for the client to present the authorization server with a
set of metadata, such as a set of valid redirection URIs.</t>
      <t>To offer proper security protection for this dynamic client registration some security
credentials need to be available on the OAuth 2.0 client. For this purpose RFC 7591
relies on two mechanisms, a trust-on-first-use model and a model where the client is
in possession of a software statement (a sort-of bearer token).</t>
      <t>This specification improves the security of the OAuth 2.0 Dynamic Client Registration
specification by introducing the support of attestation.</t>
      <t><xref target="fig-arch"/> shows the high-level communication pattern of the IETF RATS passport
model where the attester transmits the evidence in the OAuth 2.0 Dynamic
Client Registration to the authorization server. The authorization server thereby
acts as a relying party and relays the evidence to the verifier. The verifier
processes the received evidence and computes an attestation result, which is then
processed by the authorization server. Note that the verifier is a logical role that may
be included in an authorization server product. In this case the interaction between
the relying party and the verifier is local.</t>
      <figure anchor="fig-arch">
        <name>Generic Attestation Architecture Applied to OAuth 2.0</name>
        <artwork><![CDATA[
                              .-------------.
                              |             | Compare Evidence
                              |   Verifier  | against
                              |             | policy
                              '--------+----'
                                   ^   |
                          Evidence |   | Attestation
                                   |   | Result
                                   |   v
 .------------.               .----|----------.
 |            +-------------->|---'           | Compare Attestation
 | OAuth 2.0  |   Evidence    | Relying       | Result against
 |   Client   |  in Dynamic   | Party (AS)    | policy
 '------------' Client Reg.   '---------------'
]]></artwork>
      </figure>
      <t>As a design goal, the proposed extension is agnostic to the attestation
technology being used. No new attestation technology (and evidence
format in particular) is defined by this specification. Instead, this
document focuses on conveying evidence to the authorization server
during the process of dynamically registering a client.</t>
      <t>To prevent the replay of evidence, attestation technologies require some
replay protection to be used. Nonce-based freshness is one
approach supported by various attestation technologies. TPM v2.0 <xref target="TPM20"/>,
for example, supports nonce-based replay protection. Hence, it is necessary
to convey a nonce from the authorization server (which typically obtains
it from the verifier) to the OAuth 2.0 Client.</t>
      <t>In <xref target="extension"/> we describe the protocol mechanism</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <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>
      <?line -18?>

<t>This document re-uses the terms defined in RFC 9334 related to remote
attestation. Readers of this document are assumed to be familiar with
the following terms: evidence, claim, attestation result, attester,
verifier, and relying party.</t>
    </section>
    <section anchor="extension">
      <name>Extension</name>
      <t>This section defines the extensions needed to support the use of
attestation.</t>
      <t>The abstract OAuth 2.0 client dynamic registration flow illustrated
in <xref target="fig-arch2"/> describes the interaction between the client or developer
and the endpoint defined in <xref target="RFC7591"/>.  This figure does not
demonstrate error conditions.</t>
      <figure anchor="fig-arch2">
        <name>Abstract Dynamic Client Registration Flow</name>
        <artwork><![CDATA[
        +--------(A)- Attestation Evidence (OPTIONAL)
        |
        |   +----(B)- Initial Access Token (OPTIONAL),
        |   |         Software Statement (OPTIONAL)
        v   v
    +-----------+                                      +---------------+
    |           |--(C)- Client Registration Request -->|    Client     |
    | Client or |                                      | Registration  |
    | Developer |<-(D)- Client Information Response ---|   Endpoint    |
    |           |        or Client Error Response      +---------------+
    +-----------+
]]></artwork>
      </figure>
      <t>This flow includes the following steps:</t>
      <t>(A)   Optionally, but defined in this specification, the client is
     obtains evidence from an attester. The attester is typically a
     component on the device that consists of hardware and low-level
     software. The methodused by the OAuth 2.0 software to obtain evidence is
     specific to a given attestation technology and outside the
     scope for this specification.</t>
      <t>(B)   Optionally, the client or developer is issued an initial access
     token or a software statement giving access to the client
     registration endpoint. The method by which the initial access
     token or the software statement are issued to the
     client or developer is out of scope for this specification.</t>
      <t>(C)   The client or developer calls the client registration endpoint
     with the client's desired registration metadata, optionally
     including information from (A) or (B) if one is required
     by the authorization server.</t>
      <t>(D)   The authorization server registers the client and returns:</t>
      <ul spacing="normal">
        <li>the client's registered metadata,</li>
        <li>a client identifier that is unique at the server, and</li>
        <li>a set of client credentials such as a client secret, if
  applicable for this client.</li>
      </ul>
      <t>This specification re-uses the client registration endpoint, as
described in Section 3.1 of <xref target="RFC7591"/>.</t>
      <t>Upon a successful registration request, the authorization server
returns a client identifier for the client.  The server responds with
an HTTP 201 Created status code and a body of type "application/json"
with content as described in Section 3.2.1 of <xref target="RFC7591"/>.</t>
      <t>If evidence was used as part of the registration, its
value <bcp14>MUST NOT</bcp14> be returned in the response along with other
metadata to the OAuth 2.0 client. Evidence is only communicated
from the OAuth 2.0 client to the authorization server - not vice versa.</t>
      <t>Upon an unsuccessful registration request, the authorization server
responds with an error, as described in Section 3.2.2 of <xref target="RFC7591"/>.</t>
      <t>This specification defines a new error message that is used when the
authorization server challenges the OAuth 2.0 client for evidence
using a fresh nonce. The nonce <bcp14>MUST</bcp14> be randomly generated with a
length of 32 bytes or more (before base64 encoding the value).
The error is defined as:</t>
      <artwork><![CDATA[
stale_evidence
  The provided evidence is not current. Resend fresh evidence.
]]></artwork>
      <t>A new member is used in the response JSON object called "nonce".
It contains the nonce value that will be used by the OAuth 2.0
client as input to the API call for requesting fresh evidence
from the attester. Typically, the nonce value will be included
(directly or indirectly) in the returned evidence. The verifier
who provided the nonce to the authorization server <bcp14>MUST</bcp14> store
the provided nonce for later comparison against the nonce
included in the evidence.</t>
      <t>An OAuth 2.0 client that is configured to use attestation
information with dynamic client registration <bcp14>MAY</bcp14> send a
minimal registration request in the anticipation that an error
response will follow. This error response will contain a nonce,
which is then used to obtain fresh evidence from the attester.
At a minimum the OAuth 2.0 client <bcp14>MUST</bcp14> convey the "client_name"
but <bcp14>MAY</bcp14> also include any (likely stale) evidence available since
it might provide the authorization server with information
to distinguish clients with different capabilities, some of which
may not offer any attestation capabilities.</t>
      <t>Once an error response with a nonce is available the OAuth 2.0
client <bcp14>MUST</bcp14> include the obtained evidence in the newly constructed
full request.</t>
      <t>The following is a non-normative example of an error response
containing a nonce (with line breaks within values for display
purposes only):</t>
      <artwork><![CDATA[
 HTTP/1.1 400 Bad Request
 Content-Type: application/json
 Cache-Control: no-store
 Pragma: no-cache

 {
  "error": "stale_evidence",
  "error_description": "The provided evidence is not current.",
  "nonce": "lBjvTtuPbpzIaqyiAOOkrIol3WmflPUUepzUXNDFuUgMKUL"
 }
]]></artwork>
      <t>To include evidence in a registration request the following <bcp14>OPTIONAL</bcp14>
member is included in the JSON object:</t>
      <artwork><![CDATA[
   evidence
      Evidence is a set of claims generated by an attester to
      be appraised by a verifier. Evidence may include configuration
      data, measurements, telemetry, or inferences. This is a string
      value containing the evidence, as produced by the selected
      attestation technology.
]]></artwork>
      <t>[Editor's Note: The evidence structure may utilize the format defined
in the RATS Conceptual Messages Wrapper specification
<xref target="I-D.ftbs-rats-msg-wrap"/>, which allows to indicate type information
as well.]</t>
      <t>In the following example, a request is sent containing attestation
evidence and registering a JWK Set by value (with line breaks
within values for display purposes only). Some registration
parameters are conveyed in the evidence while some values specific
to the client instance are conveyed as regular parameters.</t>
      <artwork><![CDATA[
 POST /register HTTP/1.1
 Content-Type: application/json
 Accept: application/json
 Host: server.example.com

 {
   "redirect_uris": [
    "https://client.example.org/callback",
    "https://client.example.org/callback2"
   ],
   "client_name": "My Example Client",
   "jwks": {"keys": [{
       "e": "AQAB",
       "n": "nj3YJwsLUFl9BmpAbkOswCNVx17Eh9wMO-_AReZwBqfaWFcfG
   HrZXsIV2VMCNVNU8Tpb4obUaSXcRcQ-VMsfQPJm9IzgtRdAY8NN8Xb7PEcYyk
   lBjvTtuPbpzIaqyiUepzUXNDFuAOOkrIol3WmflPUUgMKULBN0EUd1fpOD70p
   RM0rlp_gg_WNUKoW1V-3keYUJoXH9NztEDm_D2MQXj9eGOJJ8yPgGL8PAZMLe
   2R7jb9TxOCPDED7tY_TU4nFPlxptw59A42mldEmViXsKQt60s1SLboazxFKve
   qXC_jpLUt22OC6GUG63p-REw-ZOr3r845z50wMuzifQrMI9bQ",
       "kty": "RSA"
     }]},
   "evidence": "eyJhbGciOiJSUzI1NiJ9eyJzb2Z0d2FyZV9pZCI6IjRO
    UkIxLTBYWkFCWkk5RTYtNVNNM1IiLCJjbGllbnRfbmFtZSI6IkV4YW1wbGUg
    U3RhdGVtZW50LWJhc2VkIENsaWVudCIsImNsaWVudF91cmkiOiJodHRwczov
    GHfL4QNIrQwL18BSRdE595T9jbzqa06R9BT8w409x9oIcKaZo_mt15riEXHa
    zdISUvDIZhtiyNrSHQ8K4TvqWxH6uJgcmoodZdPwmWRIEYbQDLqPNxREtYn0
    5X3AR7ia4FRjQ2ojZjk5fJqJdQ-JcfxyhK-P8BAWBd6I2LLA77IG32xtbhxY
    fHX7VhuU5ProJO8uvu3Ayv4XRhLZJY4yKfmyjiiKiPNe-Ia4SMy_d_QSWxsk
    U5XIQl5Sa2YRPMbDRXttm2TfnZM1xx70DoYi8g6czz-CPGRi4SW_S2RKHIJf
    IjoI3zTJ0Y2oe0_EJAiXbL6OyF9S5tKxDXV8JIndSA",
   "scope": "read write"
}
]]></artwork>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>It is up to the verifier and to the authorization server to place
as much or as little trust in the evidence provided by the attester
on the OAuth 2.0 client information as dictated by policies.</t>
      <t>This document defines the transport of evidence of different formats
in the OAuth 2.0 Dynamic Client Registration protocol. Some of the
attestation formats are based on standards while others are
proprietary formats. A verifier will need to understand these
formats for matching the received values against policies.</t>
      <t>Policies drive the processing of evidence at the verifier and other
policies influence the decision making at the relying party when
evaluating the attestation result. The relying party is ultimately
responsible for making a decision of what attestation-related
information it will accept. The presence of the evidence defined
in this specification provide the authorizations server with additional
assurance about attester (and indirectly about the OAuth 2.0 client).
Policies used at the verifier and the authorization are implementation 
and configuration dependent and out of scope for this document.
Whether to require the use of evidence in OAuth 2.0 Dynamic Client
Registration is out-of-scope for this document.</t>
      <t>Evidence generated by the attestation generally needs to be fresh to provide
value to the verifier since the configuration on the device may change
over time. Section 10 of <xref target="RFC9334"/> discusses different approaches for
providing freshness, including a nonce-based approach, the use of timestamps
and an epoch-based technique.  The use of nonces requires an extra message
exchange and the use of timestamps requires synchronized clocks.
Epochs also require communication. This document offers a way to
convey a nonce to the tester to allow evidence to be freshly generated.</t>
      <t>Different attestation technologies provide different security and privacy
properties. Some evidence formats convey more information about the target
environment while others offer less. Some evidence formats offer the
security capabilities equivalent to a bearer tokens while others are
semantically closer to proof-of-possession tokens. Implementers and
operators need to make a conscious decision about the attestation
technologies they want to support in their products.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="I-D.ftbs-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <date day="15" month="June" year="2023"/>
            <abstract>
              <t>   This document defines two encapsulation formats for RATS conceptual
   messages (i.e., evidence, attestation results, endorsements and
   reference values.)

   The first format uses a CBOR or JSON array with two mandatory
   members, one for the type, another for the value, and a third
   optional member complementing the type field that says which kind of
   conceptual message(s) are carried in the value.  The other format
   wraps the value in a CBOR byte string and prepends a CBOR tag to
   convey the type information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ftbs-rats-msg-wrap-03"/>
        </reference>
        <reference anchor="TPM20" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library Specification, Family 2.0, Level 00, Revision 01.59</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2019" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 383?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Add your name here.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1b6VIjSZL+LzPeIUb9o6hppUoIqAKsd2YECBDFIXRwtfVi
ocyQFCivykwhBFX9LPss+2Tr7hGRhyToWtt/a4O1dUmZcXj4+bmHy7KstVIi
E1fssd5YsH4sWDBkjSQRccITGfhM+uyyMU3GrF6tscO5zz1pswNXCj9hHTGS
cRLRwLUSHwwi8bS3OPvdOU5gw1vY3Yn4MLGS2B4HQ+HLkRVw2NTitJZwLMem
6VYkRlattlayeSJGQTTfY3HirJXWSjKM9lgSTeOkXqvt1upATyT4HusKexrJ
ZL5WmgXRZBQF03APTtTvnayVJmIOD5091vITEfkisQ6RDFwODuA7D9wNfCBu
LuK1Uij31kqMRUNbOHEyd81zxpLAzn+WvgOUpk/iIEoiMYyzB3Ov+D2JpJ2N
twPPg/nZe+m70s/tJp4TywUeWrDQIHBhoBX8/Vd8Bdz0eBhKf5Sn58EVTwKH
beHBkK1BhEex8D39SR/enlRZL2V/+kpJ54T7vohXvQ+iEfflC4kTmC0F0B6n
b4XHpbvHxjS9mkn3XyPvuQr8RoIW6TitshMRRR7MWaDilPvLr36KgEfuV8d6
5r9iNaYKjMb910p+AC8S+SRIwJ2jg/rGxq75vLPxZct8/rK9u7FHyuYPF+fs
bm6qcS3rsDpMBrEFOh5bXjyyZhEP6VWvfV6v7WniMkFkJwErRA0WDjsIvHCa
gCTZMaqsHmVMVQ9quzxBQth54Exdwc7kIOLRnHVDYcuhtIkpFXYE9ufO0YAr
7Ax1gdXgU0c8yRhttLZR3d41G/BoJEAXx0kSxnufPiVqJ9tQQ/ZTBUo/RSIO
ppEtPiWhB+pIG1txfuNPek0HTHWPXQRPwhuIiNVrG7vIQ8uyGB+gK7BJD9D/
/JSnYYVdmCNiO5IDYAc4GxAEQymBZ9GPYzYOZoznvZhyJcyGhwPBHLUTd4FF
EW0jIlhsJmE0jFBi0goGfkFET3CIJGDBIOESPZxWBSAFnkr0JHAiNT8Zy7i4
AlMLVGCg7U4dFDCHZZeIk+hD4JAiqhJzYL/hEDYOoyCEf2Lt1fB7ImxaGehQ
G+oTmaWiAu8CT6SzwY3CUXEj7sbMF3BsOALwhD+B2fABqBSeqiAYtWiVHZnd
wmkUBhA3MtZHAsbENHUWME/YYP8y9uIK48pDW4FvDWUEH6Yw0QscUElwt/Ba
fZ6BrQra13AjRptjsE8sYlJaiFIcDjNMZuDmGYYbNOqErXNyuBa8Hwh4haKa
CP+j4iLSW9Qe6QEHn4Ba3C3lKsxOflYdQScKKw7mqAQRWKSN0qV1p2EIRBHR
WXCsGivwpOO4Ar/9gpGIpqqV/20Vb1oFa4DqccVU5HFBy0GmNihKRW1V4AxE
QDcOgD9DiSGNZ/qpDShVOqA7BC9HH+HpKoI1P5ABRIgnEg7ujldA5Da8wPX1
qyfuSgeodGSk7bXfacX/Nu7/z8b9+joEJMsje/zjB4vB4hQlYzkaWwTKCOxN
fbN6iAtEvqGw1ewdsU6j14UXcYybrJUWeagBMnAi4n7syURtAbEdRG8LtP6V
h10rrfIhoCBvqXqVEoSVRpAgNQNQOLDwWCk9aMkcGYQWOifxwxM+XyBObwdr
aJvu5b4B4lZWrOUHZiMAbznZdFxWIRM0ZD/PfhgdT92kApySYIiSlvCzJR2U
5NtHvQC7g9c8KdCHy3DmBiP0iywKXD3G43D2gdDOS7ncRR9peBUq714FR68s
zOaxkqTxkaRmIpkJpFcdfJGXi0S5ARBEGvfnn39mgHL1X9XK/1X/avj3hW8I
TNEqm1oKPzP/2tAK3/gI4kOc/G+3DQNX2vO/mvXBHOtX/N+HvxpOf/+J6783
0pyUaPqeT29/an01q0P6+NMTnmBkQVDVhUH08ntRjgWe/VoQs/UPHPuhsIuR
ZPFA33O+glZMj6/PoZTRLKLOlZMqTtGuhebnKgD4vU1KvN7oflTzU7l+yFP7
IeeL8eQfiodByZKmv+6xX4yLVcnRf5SPhQ/qZhfKEA14LzGUTvG8YQiLUzRM
j1r+gdbTQPsGiCRHPhsF3K2QpWFUDtBlQOINeSMFFhg48oM4gX2Mz8xzEbYa
+wF4ijmYMrILQqGDbgXi8Kzgp3Ij19G0RWpWCkAh/9DwpT11efQRd1bQRXuw
xZiHjgXiAXcU9qEKy5SC5xA+xCpy24H/JEiMi654lc+CNSBw6minHSiGqFUQ
kZCbgREa2wCIejIgKhIhhAGcbXaurGYHYoxIfJtKBAAAaxB40NQcJlJwxrAW
1rIGHOU0BOc/9pFKiceFuTyEaRx0RAdrxb0nHslgGr9JQBUTdvaElvD6Srn7
jx8VEgyoAvdCV1TMggCwcgQskYolDTqrRLgDSoA8hIQZNCXQ0gC20RJAfeC9
DTjXVUBL5qHmvALcCKGSbKoJDh+NXDObPshkAyHo9TVVaoAoM5HmDUbYSWAH
bg4jqyzlAEn2ka6YAtIhqqSk7yZpmcCRsLgWs/J5v9srV9S/7OKSPneaV/1W
p3mIn7snjbOz9ENJj+ieXPbPDrNP2cyDy/Pz5sWhmgxPWeFRqXzeuIM3SFf5
st1rXV40zsoKCKH1GHtA16c0iCIvaCmqBY9LhdRp/6D93/+1sQWM+psuDAGf
1BesDCHTAFio3QIf5KG+AvfmqHWAUgkNuAD1eCgTgOIVREgIBn2GuKlaKv39
d+TMH3vst4Edbmz9Qz/AAxceGp4VHhLPlp8sTVZMXPFoxTYpNwvPFzhdpLdx
V/hu+J57+Ns/sYzJrI2df/6jlAL2VByRsKYG6oE4vMzP6QQWC2yEIhPluyPh
gXmBbedAN8QL7ogoVgh6UdoAouGLSYOGWBWTXOVwCmkNA9cNZuTqkIK9nJOy
XS69ykqIaSA4uAZjdxUDeTPgVlWW00xjyOsvmell+Yt2bSY9JbhshqksTh3A
ZB04YEpV+yInjBmaCttyom8SyUIGOYTzM+m6U3oiHMrMsjSmDvqelRDeQK35
3A5cpYOJDua1QKDGrsJ3wkAiDZmIX191gfXHD4j4xAzYFeO1Ewh0rwlWLzzg
AlHGRBTB4uA7HeV3YNISAE4x0Hrjo1UABCmoWTea+jGblkOD380q6/uwQgt9
HED/hk0xsIfJZ26FSnFeBse6JpXtZqnsin2fNPBbQG+//gRmXAZ81q9qpTwo
BAy4fgDnWJX6dSDYAnsYQkWWx3ApP76bZ8D374u7r/77XtwjW+nQKAX7/pu1
fpjR1MoVjgBbhiBZ8BkAdWFa06hNnqb8ZvoP6NOrNUlJ0nXe49OvxUdL8LJu
8GXDWNR7xbgjsKNyZtbKrFR6qOwmczXgOsKYbhVAS4GQyxBXwNheYYNpwUaW
4V5lsZCiGKAwQYbuCBikGXKazJvaAabHKaDgehHMrAE8obyVSYMhS1unvGB3
MZyWHO2YRw5pN5o3HEqVNvQqpoqjdvQEQBpnmsu/M7eU1nuyKmJWxTAnM4fH
QZyNJKCQt+A0ReRpEsMSuJNZwAaty6ppRexMQthfFMIb7gy5JiGiIGjAgqdy
DZxcg7lNIQcBk1ZWs4B6gsvKmWigpjbS8wuu2TjNPCeRixoQki9+jwaqVS1T
gd/0MRQJRvyrTwwcRZn/NRsPkI29N1iHmhbnGbvypJoSXTM2Yz/ElKJFhLNz
s7Laa5AKT6+QVZXzdWkyCrQ5IA2lLoeYLOAhdeLh6OnvlYrorIfmrCshu8mN
CgdW+ADyUV/ZPrOKR8zV3NOD6XF8uRqujBIon/oS3DjThStTVYfN0rm6HG2q
/bkScVay1i8BjACJkLQMkREc02ab6sap3POJ3nL5NQ/p3pMzIuK1Iuzuahy0
Wd1AavPgADfrg2fCs0xJ04dTt7hwpGJZ5Z2UVvN+JTOL9wBVJdpUmBhLIKtR
qBFvpHu9Nl5qsoNIEDZF24Ks0g4coQvfg8BRZec5GE1ZM5KuSB/jwC+vlUjF
wacmpBoxe4MX9dXcaGXZNJvBbPKv/O3rEUxDgeFP3AVVMZkGQmLFFBNrhD4s
BE7sgxgpQwyw2rtWMkq5nGAarjUz560yo6zWjZaV5qpLwPSdUgRoMABBRnEI
vsZclS+NQvig//8nncjJFlcjjFl5VyD1VQJZYQvZfRNWgBR49bAIMBKZ8aLc
MH9UbnglAyAPd13hj7RZLTGPihNpDWkaq4IMVURUfUGFD1VqINmj3EFNAw9E
NMLaGSmxudjCvVDqQ7ZZB0eIlXakPICosT4QQ/wXax6ft8CaQeNNmYh0C+9l
cDN12lzliiufRxgLrMUVDyJXTe6pygM+cfIQgERvT6OI1KuDN3O61pOOqupF
10oN4rOnWg4MbxfV+rR7eQFY4xHkSSEJhpSJM2VYqEUoRwGpJGWZMhqS2Azy
JFOAWoIzayXj6AEl+OE0VetGu0V7kaS0UiLXigfJ2UcOsxmMVlkiyNBiriAg
KKmLRqwQYQnCfPuYMUHbesq7hduX2TjIxJDt9551kj7FCSiFyqfT6bqyBZRg
+h4RtuSRjNFoVeU42wFTzuweJX9fRLbVWHFnbQwI5KVyRsIymBYXqrL54E/6
/d5d6nnjjpGGgRF4gKw8vtqhGCI5RA9bhhqGIkHGgRjHEmsxKehfVTmuso3i
AK12piJYQVnkbrGUwmUouag5bFlxgGkJXr/iKaZvOF0Sna5E4oCyev6AnVcQ
oDARQY7Q3bmWDxxwztZdORGgZGTGH3N3c+klM7ggEmoCBIzGiVGKv7hTz8mK
iqSOJDOZSjiqIk27aUfi1bnqXAj5QLqAgUVcUXfh4LaIdSBCPif/oS7akfJ8
2pCfSlp2qe4Xl8WDXlGrM14CpKdcbfzEVcMuHKJEVvBrSn3AW1GIxPLG1FYR
cuq6RsvSek6WN9JlJFBipe1rpipNV9GLtANNSq1URFBHWKcDUV1uAOhlongK
JJFXicligfNYzV4r6V4AFc0/Zh6cENCnDcAmW7Ua2+eOqSXAqwOFaSxwXWKP
LSIfHMDtsbBwWBS4e0CWpf0Ha0d85HF6ZOMgQrCvGCDKdLLyHisXg0e5kr19
UBGbMgEc+VNBRS+gQgBMcvcfn3rJtD0IX1r821w2Li8nUStwN2+8odvu90X4
0r+9ODya9kfnX/tnYCfsRxqBepmh5IXNV3uRYk3AFIcQZ5kItugVc8FrL1/5
EgsXs3kcloP/XHpxLt4P5vn6AHgXMx0bRsIw4lJHOZ67rk+XRusyhzVOuHBD
qhIzT/AYvDO1t0IMEy58TCIIZxSiyIxtunYZU26N5CZ4pWRWUbEup8f56EA4
TV2vZ/E4hj2UNakVVtcKMtjwe9ORoH+QgGELgGqKTqWnTBNLknjeaQIO40Vo
ydFdncY3VDTFx9S7cYDaFCZTiB/nCvDF7CbCu4FosTPp9XV18+iPH6aRgaOG
xKqlyiEorZKKgrsEPsyE61b/0Jc8Rd1Kr654FsKw8Ownec4WAmeh46J41Xd6
8xXwcKKu01A6Sy5FZTcrfQorupQq66LTjgr9N4ATIARR+oylChWilrEB8sdV
V4VmI8Ncih/5MpmPzd14mvx6nHJuvGRl2Za5nor2JbjyT+bwqc/7GR+H5eIw
WfnqJIjhha4laMmYxmTl7FjZ9Iw9TAExgVv6XSlz2fTo6oTLzMbmXESJA25P
ypWfH1sv09g/1JRC/AdXeD5nTR1dVL1TL11+nE2QqNfyRMyJute0oF2mmY2r
xn45K42XyR37j5t3p7P4rH/k7u57YWMwuYxnBxfXzxtfmuPd2fml9dDoiPvZ
/rchvzmyh8c0/yS6v41b1/Xrcxh60d/phYOtYNDn3Vu7Y19Z1+fx8Kp96u22
XkZJx2nc7Vxc7NwOvrSb9t18QissevTMhS/6dvLo+xe1Zt/ZGIaXh19qqgm7
c16L3PBhNHq4ueh/DW42rq3Nibjrnwa3J7sXL0nz0Hs4rJ9f3T7uiuPL09Od
eXt0fLbTbtyfnymfXO98eRzs9p4vD9qHzcMvyd1Dr7/lH7Xd5zCZbe82tuqe
6zS9a3kbf71KPtfije7ZIOAvz0dfn9QK324PHh7Ds35Sr18efD7uH3/eDK1O
c2bdX0ab0c7W9st2bXY+fZHDq+i8tTu4yvN/ksxRAp1uo6wf/vjjhxZmGklh
gJifjgfHtryUp93+S2vjQp7uwrOXQf2+5tSP5vfXu+H9Qetz67FzqRbqT1rP
Z739u5vJ0cHNZLLd6d0lIKeL842WPDs4fRwcg6b5neHAO0ruuzBzcr11d7Mx
Gxz3tYvvb3bGzvF1cn+zXTu7OR3b9etJq3kR85vrqXPQilue/ny0u2F7E6Qt
cE46M/sl0BcnxyfDs62ri1Z0NTvb2Nnvdpzm9u52b/dx8PKN1z53dvd7O7Ot
2u7zbtCyv/L74MFLNrYj2bw90YXvF6fV7T8dtu7HiZxfRN2Tq52vW72nbzfP
J5+npyPbCwLn3mnPvJtOq3k3uDo8+9a+eO40kzu/plbYvt1sdL5IvnXUebyq
B4/3j5Pt4em3U+fKOrWHz/PxV6u9s9+42Xc+t+pnZ40vX1rHm/XnZDB+vlMr
DE9uv1yPp/3tdhScXu5Mn6abjfnT1m1nfHZ/erc1/zr05o9SfpXtC2G1+Fb3
fP7gPFx1b57jiebk9m3ryt3u8vpdp30+OOzcJolX7w39+/ON5+cvtcPgTu6M
PtsvL9ZB+7gjt7o3D9165+tJ63SoVmg9Bq3Nl95p7a4eiNpD87Qhbwdnny/n
R7vd7eTr8+Ht9c5py3dAj7T2UFEYVQf8vsNmkUwwdcgQ0S/pj3HQZ2JhXjn5
mL3+EgvbQvRLdyYtVQ4JFxsEVfPbOwkotuy6HLEPuHMP65lYfI8hHCUJgnTs
T12KHCksNHVeDYLWSm/0xxaqyFgcknZiQBT1M5ksonjDnb/TpW5N0zaaUoJN
NWk6o7aIUzDxc13gpmVDx1JV/StcDZuFKfypfhVkIP7eiWO7hgqkVOajMdQ0
GUZSJPjTEj25yhqZVChpNQ3GUx8v4BN91RunjUwq8MMHe2yQW9rRqQO2KQUU
eNjWX5gTYYqT60HCZfLcW+zWpAsgVa00K6LkYCuqY9CNlq1+AuPxiQI9bLnh
ckaNowJp5IkhfbkPQJVPilNRid1EwqEF3kXoVEyaErrZNaOD8lUsHWTLW7rl
oVi+kLr8xAlaVHXNDEtithF6xpgiLF0qTb6ZkMfFLndH3bRzF60LcLzCUAO8
EUrzBuphy6pN+vUqI8LiYCpbVbFeIb9lS6f7KsQhaFPqkWosKOQdcOZQ0O/w
zD3gilsrY5lAyc1YoKaovhLVdZZ1VhTyt7fMcK1UsEN1VWYFQ+vtTddKaQJV
SMQWFUy9xLtZNLLY9K9Q2SdJi3SmoL/oM6n+ovBvgUPFW13MaLDHawTrBORK
pSeqaal7o5bWubEPB9tAZGxPqTk7c1mmzU6hfHIcQFla3fTpJxm5n3gUmubM
5Eqe80gFsMELYyVkLGuEgT3WcyiFwxsvfUmjZ9Gy6TUe9YaLZ5CMqbiDOT+r
w6ZKtrRfNjue+/Y4CnxI9kDL3MCeoGdqIhmxKogZlSl08+s0NnX/VHnCnHYG
rMb8eqHvT8stTcBVrlfo0DRSz1fqSY8OMxG81UxprDyTVvqDCOQBOPgnjo24
6jcoVAhTISQrLGo/rummO4BCJExtXf2KELjsP0lgHB2/EFZUFc4Faby1iRpB
sSulM1+lY8hyUHh9YcQLPwhZFcRi4VGJluwIpBhruBAFYKPwX+7nJ2qNKmsZ
N0OL4B0qsoYnQZT9ngZ8uMBLRPCWNjWTpr48Y8fq1mCpoAAEGK7OYFq6VLyX
6W8FYt06xlqNi8YCciKUsX+Y/pQMEzk1umFP/GDmCmek6i1UO3ccNg+mEf2e
VnUfrpX+B+gLXQAEPgAA

-->

</rfc>
