<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.7 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-pki-05" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="SCION CP-PKI">SCION Control-Plane PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-pki-05"/>
    <author initials="C." surname="de Kater" fullname="Corine de Kater">
      <organization>SCION Association</organization>
      <address>
        <email>c_de_kater@gmx.ch</email>
      </address>
    </author>
    <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
      <organization>SCION Association</organization>
      <address>
        <email>nic@scion.org</email>
      </address>
    </author>
    <author initials="S." surname="Hitz" fullname="Samuel Hitz">
      <organization>Anapaya Systems</organization>
      <address>
        <email>hitz@anapaya.net</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 131?>

<t>This document presents the trust concept and design of the SCION <em>control-plane Public Key Infrastructure (PKI)</em>, SCION's public key infrastructure model. SCION (Scalability, Control, and Isolation On Next-generation networks) is a path-aware, inter-domain network architecture. The control-plane PKI, or short CP-PKI, handles cryptographic material and lays the foundation for the authentication procedures in SCION. It is used by SCION's control plane to authenticate and verify path information, and builds the basis for SCION's special trust model based on so-called Isolation Domains.</t>
      <t>This document first introduces the trust model behind the SCION's control-plane PKI, as well as clarifications to the concepts used in it. This is followed by specifications of the different types of certificates and the Trust Root Configuration. The document then specifies how to deploy the whole infrastructure.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://scionassociation.github.io/scion-cppki_I-D/draft-dekater-scion-pki.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dekater-scion-pki/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/scionassociation/scion-cppki_I-D"/>.</t>
    </note>
  </front>
  <middle>
    <?line 138?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The control-plane PKI (CP-PKI) lays the foundation for the authentication procedures in SCION. It handles all cryptographic material used in the public key infrastructure of SCION's control plane. This section first introduces the key concepts of the SCION CP-PKI, including the trust model, its core elements (certificates, keys, and roles), and their relationships. The sections after the Introduction provide detailed specifications of the building blocks of the CP-PKI.</t>
      <t><strong>Note:</strong> For extended information on the SCION next-generation inter-domain architecture, see <xref target="CHUAT22"/>, especially Chapter 2, as well as the IETF Internet Drafts <xref target="I-D.scion-overview"/> and <xref target="I-D.scion-components"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t><strong>Control-Plane PKI (CP-PKI)</strong>: The control-plane PKI is the public-key infrastructure upon which SCION's control plane relies for the authentication of messages. It is a set of policies, roles, and procedures that are used to manage trust root configurations (TRCs) and certificates.</t>
        <t><strong>Autonomous System (AS)</strong>: An autonomous system is a network under a common administrative control. For example, the network of an Internet service provider, company, or university can constitute an AS. If an organization operates multiple networks that are not directly connected together, then the different networks are considered different ASes.</t>
        <t><strong>Isolation Domain (ISD)</strong>: In SCION, autonomous systems (ASes) are organized into logical groups called isolation domains or ISDs. Each ISD consists of ASes that span an area with a uniform trust environment (i.e., a common jurisdiction). A possible model is for ISDs to be formed along national boundaries or federations of nations.</t>
        <t><strong>Core AS</strong>: Each isolation domain (ISD) is administered by a set of distinguished autonomous systems (ASes) called core ASes, which are responsible for initiating the path-discovery and -construction process (in SCION called "beaconing").</t>
        <t><strong>Trust Root Configuration (TRC)</strong>: A trust root configuration or TRC is a signed collection of certificates pertaining to an isolation domain (ISD). TRCs also contain ISD-specific policies.</t>
        <t><strong>Authoritative AS</strong>: Authoritative ASes are those ASes in an ISD that always have the latest TRCs of the ISD. As a consequence, authoritative ASes also start the announcement of a TRC update.</t>
        <t><strong>Base TRC</strong>: A base TRC is a trust root configuration (TRC) that other parties trust axiomatically. In other words, trust for a base TRC is assumed, not derived from another cryptographic object. Each ISD must create and sign a base TRC when the ISD is established. A base TRC is either the first TRC of the ISD or the result of a trust reset.</t>
        <t><strong>TRC Signing Ceremony</strong>: The ceremony during which the very first base TRC of an ISD, called the initial TRC, is signed. The initial TRC is a special case of the base TRC where the number of the ISD is assigned.</t>
        <t><strong>TRC Update</strong>: A <em>regular</em> TRC update is a periodic re-issuance of the TRC where the entities and policies listed in the TRC remain unchanged. A <em>sensitive</em> TRC update is an update that modifies critical aspects of the TRC, such as the set of core ASes. In both cases, the base TRC remains unchanged.</t>
        <t><strong>Voting ASes</strong>: Those ASes within an ISD that may sign TRC updates. The process of appending a signature to a new TRC is called "casting a vote".</t>
        <t><strong>Voting Quorum</strong>: The voting quorum is a trust root configuration (TRC) field that indicates the number of votes (signatures) needed on a successor TRC for it to be verifiable. A voting quorum greater than one will thus prevent a single entity from creating a malicious TRC update.</t>
        <t><strong>Grace Period</strong>: The grace period is an interval during which the previous version of a trust root configuration (TRC) is still considered active after a new version has been published.</t>
        <t><strong>Trust Reset</strong>: A trust reset is the action of announcing a new base TRC for an existing ISD. A trust reset should only be triggered after a catastrophic event involving the loss or compromise of several important private keys.</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?>

</section>
      <section anchor="trust-model">
        <name>Trust Model</name>
        <t>Given the diverse nature of the constituents in the current Internet, an important challenge is how to scale authentication of network elements (such as AS ownership, hop-by-hop routing information, name servers for DNS, and domains for TLS) to the global environment. The roots of trust of currently prevalent public key infrastructure (PKI) models do not scale well to a global environment, because (1) mutually distrustful parties cannot agree on a single trust root (monopoly model), and because (2) the security of a plethora of roots of trust is only as strong as its weakest link (oligopoly model) - see also <xref target="BARRERA17"/>.</t>
        <t>The monopoly model suffers from two main drawbacks: First, all parties must agree on a single root of trust. Secondly, the single root of trust represents a single point of failure, the misuse of which enables the forging of certificates. Also, its revocation can result in a kill-switch for all the entities it certifies. The oligopoly model relies on several roots of trust, all equally and completely trusted. However, this is not automatically better: Whereas the monopoly model has a single point of failure, the oligopoly model has the drawback of exposing more than one point of failure.</t>
        <t>Thus, there is a need for a trust architecture that supports meaningful trust roots in a global environment with inherently distrustful parties. This new trust architecture should provide the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>Trust agility (see further below);</t>
          </li>
          <li>
            <t>Resilience to single root of trust compromise;</t>
          </li>
          <li>
            <t>Multilateral governance; and</t>
          </li>
          <li>
            <t>Support for policy versioning and updates.</t>
          </li>
        </ul>
        <t>Ideally, the trust architecture allows parties that mutually trust each other to form their own trust "union" or "domain", and to freely decide whether to trust other trust unions (domains) outside their own trust bubble.</t>
        <t>To fulfill the above requirements, which in fact apply well to inter-domain networking, SCION introduces the concept of <strong>Isolation Domains</strong>. An Isolation Domain (ISD) is a building block for achieving high availability, scalability, and support for heterogeneous trust. It consists of a logical grouping of ASes that share a uniform trust environment (i.e., a common jurisdiction). An ISD is administered by one or multiple ASes, called the <strong>voting ASes</strong>. Furthermore, each ISD has a set of ASes that form the ISD core; these are the <strong>core ASes</strong>. The set of core and voting ASes can, but not necessarily have to, overlap. It is governed by a policy called the <strong>Trust Root Configuration</strong> (TRC), which is negotiated by the ISD core. The TRC defines the locally scoped roots of trust used to validate bindings between names and public keys.</t>
        <t>Authentication in SCION is based on digital certificates that bind identifiers to public keys and carry digital signatures that are verified by roots of trust. SCION allows each ISD to define its own set of trust roots, along with the policy governing their use. Such scoping of trust roots within an ISD improves security, as compromise of a private key associated with a trust root cannot be used to forge a certificate outside the ISD. An ISD's trust roots and policy are encoded in the TRC, which has a version number, a list of public keys that serves as root of trust for various purposes, and policies governing the number of signatures required for performing different types of actions. The TRC serves as a way to bootstrap all authentication within SCION. Additionally, TRC versioning is used to efficiently revoke compromised roots of trust.</t>
        <t>The TRC also provides <em>trust agility</em>, that is, it enables users to select the trust roots used to initiate certificate validation. This implies that users are free to choose an ISD they believe maintains a non-compromised set of trust roots. ISD members can also decide whether to trust other ISDs and thus transparently define trust relationships between parts of the network. The SCION trust model, therefore, differs from the one provided by other PKI architectures.</t>
      </section>
      <section anchor="trust-relations-within-an-isolation-domain">
        <name>Trust Relations within an Isolation Domain</name>
        <t>As already mentioned previously, the control-plane PKI, SCION's concept of trust, is organized on ISD-level. Each ISD can independently specify its own Trust Root Configuration (TRC) and build its own verification chain. Each TRC consists of a collection of signed root certificates, which are used to sign CA certificates, which are in turn used to sign AS certificates. The TRC also includes ISD-policies that specify, for example, the TRC's usage, validity, and future updates. A TRC is a fundamental component of an ISD's control-plane PKI. The so-called <strong>base TRC</strong> constitutes the ISD's trust anchor. It is signed during a signing ceremony by the voting ASes and then distributed throughout the ISD.</t>
        <section anchor="trust-reset">
          <name>Updates and Trust Resets</name>
          <t>There are two types of TRC updates: regular and sensitive. A <strong>regular TRC update</strong> is a periodic re-issuance of the TRC where the entities and policies listed in the TRC remain unchanged, whereas a <strong>sensitive TRC update</strong> is an update that modifies critical aspects of the TRC, such as the set of core ASes. In both cases, the base TRC remains unchanged. If the ISD's TRC has been compromised, it is necessary for an ISD to re-establish the trust root. This is possible with a process called <strong>trust reset</strong> (if allowed by the ISD's trust policy). In this case, a new base TRC is created.</t>
        </section>
        <section anchor="substitutes-to-revocation">
          <name>Substitutes to Certificate Revocation</name>
          <t>The CP-PKI does not explicitly support certificate revocation. Instead, it relies on the two mechanisms described above and on short-lived certificates. This approach constitutes an attractive alternative to a revocation system for the following reasons:</t>
          <ul spacing="normal">
            <li>
              <t>Both short-lived certificates and revocation lists must be signed by a CA. Instead of periodically signing a new revocation list, the CA can simply re-issue all the non-revoked certificates. Although the overhead of signing multiple certificates is greater than that of signing a single revocation list, the overall complexity of the system is reduced. In the CP-PKI the number of certificates that each CA must renew is manageable as it is limited to at most the number of ASes within an ISD.</t>
            </li>
            <li>
              <t>Even with a revocation system, a compromised key cannot be instantaneously revoked. Through their validity period, both short-lived certificates and revocation lists implicitly define an attack window (i.e., a period during which an attacker who managed to compromise a key could use it before it becomes invalid). In both cases, the CA must consider a tradeoff between efficiency and security when picking this validity period.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="overview-of-certificates-keys-and-roles">
        <name>Overview of Certificates, Keys, and Roles</name>
        <t>The base TRC constitutes the root of trust within an ISD. <xref target="_figure-1"/> provides a first impression of the trust chain within an ISD, based on its TRC. For detailed descriptions, please refer to <xref target="cert-specs"/> and <xref target="trc-specification"/>.</t>
        <figure anchor="_figure-1">
          <name>Chain of trust within an ISD</name>
          <artwork><![CDATA[
                                    TRC 2

               +--------------------------------------+
               |+------------------------------------+|
               ||- Version       - Core ASes         ||
+--------+     ||- ID            - Description       ||    +--------+
| TRC 1  |     ||- Validity      - No Trust Reset    ||    | TRC 3  |
| (Base  |---->||- Grace Period  - Voting Quorum     ||--->|        |
|  TRC)  |     ||- ...                               ||    |        |
+--------+     |+------------------------------------+|    +--------+
               |+----------------+  +----------------+|
               || Regular Voting |  |Sensitive Voting||
               ||  Certificate   |  |  Certificate   ||
               |+----------------+  +----------------+|
               |+----------------+  +----------------+|
               ||     Votes      |  |   Signatures   ||
               |+----------------+  +----------------+|
               |+------------------------------------+|
               ||        CP Root Certificates        ||
               |+----------+-------------+-----------+|
               |           |             |            |
               +-----------+-------------+------------+
                           |             |
                           |             |
                           v             v
                 +-----------+         +-----------+
                 |   CP CA   |         |   CP CA   |
                 |Certificate|         |Certificate|
                 +-+-------+-+         +-----+-----+
                   |       |                 |
                   |       |                 |
                   v       v                 v
          +-----------+ +-----------+      +-----------+
          |   CP AS   | |   CP AS   |      |   CP AS   |
          |Certificate| |Certificate|      |Certificate|
          +-----------+ +-----------+      +-----------+
]]></artwork>
        </figure>
        <t>All certificates used in SCION's control-plane PKI are in X.509 v3 format <xref target="RFC5280"/>. Additionally, the TRC contains self-signed certificates instead of plain public keys. Self-signed certificates have the following advantages over plain public keys: (1) They make the binding between name and public key explicit; and (2) the binding is signed to prove possession of the corresponding private key.</t>
        <t>All ASes in SCION have the task to sign and verify control-plane messages. However, certain ASes have additional roles:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Core ASes</strong>: Core ASes are a distinct set of ASes in the SCION control plane. For each ISD, the core ASes are listed in the TRC. Each core AS in an ISD has links to other core ASes (in the same or in different ISDs).</t>
          </li>
          <li>
            <t><strong>Certification authorities (CAs)</strong>: CAs are responsible for issuing AS certificates to other ASes and/or themselves.</t>
          </li>
          <li>
            <t><strong>Voting ASes</strong>: Only certain ASes within an ISD may sign TRC updates. The process of appending a signature to a new TRC is called "casting a vote"; the designated ASes that hold the private keys to sign a TRC update are "voting ASes".</t>
          </li>
          <li>
            <t><strong>Authoritative ASes</strong>: Authoritative ASes are those ASes in an ISD that always have the latest TRCs of the ISD. They start the announcement of a TRC update.</t>
          </li>
        </ul>
        <t>All further details of the SCION control-plane PKI are specified in the following sections.</t>
      </section>
      <section anchor="trust-as-a-function">
        <name>Trust as a Function</name>
        <t>The SCION control-plane PKI can be seen as a function that transforms potential distrust among different parties into a mutually accepted trust contract including a trust update and reset policy as well as certificates used for authentication procedures in SCION's control plane.</t>
        <t>For the function to work, it is not necessary that the ASes of the ISD all trust each other. However, all ASes <bcp14>MUST</bcp14> trust the ISD's core ASes, authoritative ASes, voting ASes, as well as its CA(s). These trusted parties negotiate the ISD trust contract in a "bootstrapping of trust" ceremony, where cryptographic material is exchanged, and the ISD's trust anchor (the initial Trust Root Configuration) is created and signed.</t>
        <section anchor="input">
          <name>Input</name>
          <t>Prior to the ceremony, the trusted parties must decide about the validity period of the TRC as well as the number of votes required to update a TRC. They must also bring the required keys and certificates, the so-called root and voting keys/certificates.</t>
          <t>During the ceremony, the trusted parties decide about the number of the ISD. This must be an integer in the inclusive range between 64 and 4094. The next table shows the current allocation of ISD numbers in SCION:</t>
          <table anchor="_table-1">
            <name>ISD Number Allocations</name>
            <thead>
              <tr>
                <th align="left">ISD</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">The wildcard ISD.</td>
              </tr>
              <tr>
                <td align="left">1 - 15</td>
                <td align="left">Reserved for documentation and sample code (analogous to <xref target="RFC5398"/>.</td>
              </tr>
              <tr>
                <td align="left">16 - 63</td>
                <td align="left">Private use (analogous to <xref target="RFC6996"/>). Can be used for testing and private deployments.</td>
              </tr>
              <tr>
                <td align="left">64 - 4094</td>
                <td align="left">Public ISDs. Should be allocated in ascending order, without gaps and "vanity" numbers.</td>
              </tr>
              <tr>
                <td align="left">4095 - 65535</td>
                <td align="left">Reserved for future use.</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="output">
          <name>Output</name>
          <t>The output of the bootstrapping of trust ceremony, or the trust "function", are the ISD's initial Trust Root Configuration as well as mutually trusted and accepted CA and AS certificates--the latter are used to verify SCION's control-plane messages. Together with the ISD's control-plane root certificates, the CA and AS certificates build the ISD's trust and verification chain.</t>
        </section>
      </section>
    </section>
    <section anchor="cert-specs">
      <name>Certificate Specification</name>
      <t>This section provides a detailed specification of all certificates used in SCION's control-plane PKI. It starts with an overview of the main keys and certificates.</t>
      <section anchor="overview">
        <name>SCION Control-Plane PKI Keys and Certificates - Overview</name>
        <t>There are three types of control-plane (CP) certificates: root certificates, CA certificates, and AS certificates. Together, they build a chain of trust that is anchored in the trust root configuration (TRC) file of the respective Isolation Domain (ISD). Additionally, there are regular and sensitive voting certificates, which define the keys to cast votes in a regular and a sensitive TRC update, respectively.</t>
        <t>All certificates in SCION's control-plane PKI are in X.509 v3 format <xref target="RFC5280"/>.</t>
        <t>The next section shows SCION's trust hierarchy. This is followed by sections that describe the main certificates and corresponding key pairs of SCION's control-plane PKI as well as the voting certificates and keys.</t>
        <section anchor="trust-hierarchy">
          <name>Trust Hierarchy</name>
          <t>The trust is anchored in the Trust Root Configuration (TRC) for each ISD. The trust root is axiomatic: All trust derived from this anchor relies on all parties transitively trusting the TRC.</t>
          <t>The trust hierarchy looks like this:</t>
          <artwork><![CDATA[
TRC
── Regular Voting Certificates
     └── TRC (next version, regular update)
── Sensitive Voting Certificates
     └── TRC (next version, sensitive update)
── CP Root Certificates
     └── CP CA Certificates
          └── CP AS Certificates
]]></artwork>
        </section>
        <section anchor="cp-root-cert">
          <name>Control-Plane Root Certificate</name>
          <t>The control-plane root private key is used to sign control-plane CA certificates. Consequently, the control-plane root certificate with the control-plane root public key is used to verify control-plane CA certificates, i.e., root certificates determine which ASes act as CA in an ISD.</t>
          <t>In X.509 terms, CP root certificates are <em>self-signed</em> CA certificates. That is, issuer and subject of the certificate are the same entity, and the public key in the root certificate can be used to verify the root certificate's signature. The CP root public key and proof of ownership of the private key are embedded in the Trust Root Configuration (TRC) of an Isolation Domain (ISD), via the self-signed CP root certificate. This facilitates the bootstrapping of trust within an ISD, and marks the CP root certificates as the starting point of an ISD's certificate verification path.</t>
          <t>The recommended <strong>maximum validity period</strong> of a CP root certificate is: 1 year.</t>
          <t><strong>Note</strong>: The TRC of each ISD contains a trusted set of control-plane root certificates. This set builds the root of each ISD's verification path. For more information on the selection of this trusted set of root certificates, see <xref target="trc-specification"/>.</t>
        </section>
        <section anchor="control-plane-ca-certificate">
          <name>Control-Plane CA Certificate</name>
          <t>The control-plane CA private key is used to sign control-plane AS certificates. Consequently, control-plane CA certificates holding the control-plane CA public key are used to verify control-plane AS certificates.</t>
          <t>The public key needed to verify the CA certificate is in a CP root certificate. CA certificates do not bundle the root certificate needed to verify them. In order to verify a CA certificate, a pool of root certificates must first be extracted from one or more active TRCs (as described in <xref target="signing-verifying-cp-messages"/>).</t>
          <t>The recommended <strong>maximum validity period</strong> of a CP CA certificate is: 11 days.</t>
        </section>
        <section anchor="control-plane-as-certificate">
          <name>Control-Plane AS Certificate</name>
          <t>SCION ASes sign control-plane messages, such as Path Construction Beacons, with their AS private key. Consequently, control-plane AS certificates holding the corresponding AS public key are required to verify control-plane messages.</t>
          <t>In X.509 terms, control-plane AS certificates are end-entity certificates. That is, they cannot be used to verify other certificates.</t>
          <t>The recommended <strong>maximum validity period</strong> of a CP AS certificate is: 3 days.</t>
        </section>
        <section anchor="cp-voting-cert">
          <name>Voting Certificates</name>
          <t>There are two types of voting certificates: the (1) regular voting certificates and the (2) sensitive voting certificates. They contain the public keys associated with the private keys that are allowed to cast votes in the TRC update process. Voting certificates are X.509-style certificates.</t>
          <t>Regular and sensitive voting certificates are used to verify regular and sensitive TRC updates, respectively, and are embedded in the TRC.</t>
          <section anchor="regular-voting-certificate">
            <name>Regular Voting Certificate</name>
            <t>Regular voting certificates state which keys are allowed to cast votes in a regular update. In X.509 terms, regular voting certificates are self-signed end-entity certificates. This means that the issuer and subject of a regular voting certificate are the same entity, and the public key within the certificate can be used to verify the certificate's signature. However, a regular voting certificate cannot be used to verify other certificates.</t>
            <t>The recommended <strong>maximum validity period</strong> of a regular voting certificate is: 1 year.</t>
          </section>
          <section anchor="sensitive-voting-certificate">
            <name>Sensitive Voting Certificate</name>
            <t>Sensitive voting certificates specify which keys are allowed to cast votes in a sensitive update. In X.509 terms, sensitive voting certificates are self-signed end-entity certificates. This means that the issuer and subject of a sensitive voting certificate are the same entity, and the public key within the certificate can be used to verify the certificate's signature. However, a sensitive voting certificate cannot be used to verify other certificates.</t>
            <t>The recommended <strong>maximum validity period</strong> of a sensitive voting certificate is: 5 years.</t>
            <t><strong>Note</strong>:</t>
            <ul empty="true">
              <li>
                <t>Both SCION's control-plane root certificates and control-plane CA certificates are in fact CA certificates. That is, they can both be used to verify other certificates.</t>
                <t>One important difference between both certificate types lies in their validity period: A SCION control-plane root certificate has a recommended maximum validity period of one year, whereas the recommended maximum validity period of a SCION control-plane CA certificate is 11 days. This is because a root certificate is part of the Trust Root Configuration of an ISD, which itself also has a recommended maximum validity period of one year (see Table 2 below). This ensures that the TRC must not be updated all the time and is thus relatively stable.</t>
                <t>The SCION root private key and public key/certificate are used to sign and verify the control-plane CA certificates, respectively. The control-plane CA certificates are explicitly NOT part of the TRC, for reasons of security. The control-plane CA certificates are used to verify the control-plane AS certificates, which in turn are used to verify control-plane messages. Routing is made more secure if both the SCION control-plane CA and AS certificates can be renewed on a very regular basis. Would the control-plane CA and AS certificates be part of the TRC, then the TRC would have to be updated constantly, which is undesirable.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="formal">
          <name>Certificates - Formal Overview</name>
          <t><xref target="_table-2"/> and <xref target="_table-3"/> below provide a formal overview of the different types of key pairs and certificates in the control-plane PKI.</t>
          <table anchor="_table-2">
            <name>Key chain</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Notation (1)</th>
                <th align="left">Used to verify/sign</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Sensitive voting key</td>
                <td align="left">K<sub>sens</sub></td>
                <td align="left">TRC updates (sensitive)</td>
              </tr>
              <tr>
                <td align="left">Regular voting key</td>
                <td align="left">K<sub>reg</sub></td>
                <td align="left">TRC updates (regular)</td>
              </tr>
              <tr>
                <td align="left">CP root key</td>
                <td align="left">K<sub>root</sub></td>
                <td align="left">CP CA certificates</td>
              </tr>
              <tr>
                <td align="left">CP CA key</td>
                <td align="left">K<sub>CA</sub></td>
                <td align="left">CP AS certificates</td>
              </tr>
              <tr>
                <td align="left">CP AS key</td>
                <td align="left">K<sub>AS</sub></td>
                <td align="left">CP messages, path segments</td>
              </tr>
            </tbody>
          </table>
          <t>(1)  K<sub>x</sub> = PK<sub>x</sub> + SK<sub>x</sub>, where x = certificate type, PK<sub>x</sub> = public key, and SK<sub>x</sub> = private key</t>
          <table anchor="_table-3">
            <name>Certificates</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Notation</th>
                <th align="left">Signed with</th>
                <th align="left">Contains</th>
                <th align="left">Validity (2)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TRC (trust root conf.)</td>
                <td align="left">TRC</td>
                <td align="left">SK<sub>sens</sub>, SK<sub>reg</sub> (1)</td>
                <td align="left">C<sub>root</sub>, C<sub>sens</sub>, C<sub>reg</sub> (1)</td>
                <td align="left">1 year</td>
              </tr>
              <tr>
                <td align="left">Sensitive voting cert.</td>
                <td align="left">C<sub>sens</sub></td>
                <td align="left">SK<sub>sens</sub></td>
                <td align="left">PK<sub>sens</sub></td>
                <td align="left">5 years</td>
              </tr>
              <tr>
                <td align="left">Regular voting cert.</td>
                <td align="left">C<sub>reg</sub></td>
                <td align="left">SK<sub>reg</sub></td>
                <td align="left">PK<sub>reg</sub></td>
                <td align="left">1 year</td>
              </tr>
              <tr>
                <td align="left">CP root certificate</td>
                <td align="left">C<sub>root</sub></td>
                <td align="left">SK<sub>root</sub></td>
                <td align="left">PK<sub>root</sub></td>
                <td align="left">1 year</td>
              </tr>
              <tr>
                <td align="left">CP CA certificate</td>
                <td align="left">C<sub>CA</sub></td>
                <td align="left">SK<sub>root</sub></td>
                <td align="left">PK<sub>CA</sub></td>
                <td align="left">11 days (3)</td>
              </tr>
              <tr>
                <td align="left">CP AS certificate</td>
                <td align="left">C<sub>AS</sub></td>
                <td align="left">SK<sub>CA</sub></td>
                <td align="left">PK<sub>AS</sub></td>
                <td align="left">3 days</td>
              </tr>
            </tbody>
          </table>
          <t>(1) Multiple signatures and certificates of each type may be included in a TRC.<br/>
(2) Recommended maximum validity period.<br/>
(3) A validity of 11 days with 4 days overlap between two CA certificates is recommended to enable the best possible operational procedures when performing a CA certificate rollover.</t>
          <t><xref target="_figure-2"/> illustrates, at a high level, the relationship between a TRC and the five types of certificates.</t>
          <figure anchor="_figure-2">
            <name>TRC update chain and the different types of associated certificates. Arrows show how signatures are verified; in other words, they indicate that a public key contained in a certificate or TRC can be used to verify the authenticity of another item.</name>
            <artwork><![CDATA[
   +--------------------+     +--------------------+          +--------------+     +---------------+
   |       TRC 1        +---->|       TRC 2       -+------>╳  |       TRC 3  +---->|       TRC 4   |
   |  (base, initial)   |     |  (regular update)  |          | (base, trust |     | (sensitive    |
+--+--------------------+     +--------------------+------+   |     reset)   |     |     update)   |
|                                                         |   +--------------+     +---------------+
|                                                         |
+--------------------------------------------+        +---+----------------------------------------+
|             TRC 1 (base, initial)          |        |             TRC 2 (regular update)         |
|+------------------------------------------+|        |+------------------------------------------+|
||- Version       - Core ASes               ||        ||- Version       - Core ASes               ||
||- ID            - Description             ||        ||- ID            - Description             ||
||- Validity      - No Trust Reset          ||        ||- Validity      - No Trust Reset          ||
||- Grace Period  - Voting Quorum           ||        ||- Grace Period  - Voting Quorum           ||
||- ...                                     ||        ||- ...                                     ||
|+------------------------------------------+|        |+------------------------------------------+|
|+--------------------++--------------------+|        |+--------------------++--------------------+|
||Votes (cert.indices)||   Regular Voting   ||        ||Votes (cert.indices)||   Regular Voting   ||
||                    ||    Certificates    ||        ||                    ||    Certificates    ||
||    (empty)         ||                    ||        ||    (1),(2)...      ||                    ||
||                    ||+-----+ +-----+     ||        ||                    ||+-----+ +-----+     ||
||                    ||| (1) | | (2) |     ||        ||                    ||| (1) | | (2) |     ||
||                    |||C    | |C    | ... ||        ||                    |||C    | |C    | ... ||
||                    ||| reg | | reg |     ||        ||                    ||| reg | | reg |     ||
|+--------------------+|+--+--+ +--+--+     ||        |+--------------------+|+-----+ +-----+     ||
|+--------------------+|   |       |        ||        |+--------------------+|                    ||
||                    ||   |       +--------++-----+  ||                    ||                    ||
||                    ||   +----------------++-+   |  ||                    ||                    ||
||    Signatures      |+--------------------+| |   |  ||    Signatures      |+--------------------+|
||                    |+--------------------+| |   |  ||                    |+--------------------+|
||+------------------+|| Sensitive Voting   || |   |  ||+------------------+|| Sensitive Voting   ||
|||73 A9 4E AO 0D ...|||    Certificates    || |   +--+>|48 AE E4 80 DB ...|||    Certificates    ||
||+------------------+||+-----+ +-----+     || |      ||+------------------+||+-----+ +-----+     ||
||+------------------+||| (3) | | (4) |     || |      ||+------------------+||| (3) | | (4) |     ||
|||53 B7 7C 98 56 ...||||C    | |C    |     || +------+>|7E BC 75 98 25 ...||||C    | |C    |     ||
||+------------------+||| sens| | sens| ... ||        ||+------------------+||| sens| | sens| ... ||
||        ...         ||+-----+ +-----+     ||        ||        ...         ||+-----+ +-----+     ||
|+--------------------++--------------------+|        |+--------------------++--------------------+|
|+------------------------------------------+|        |+------------------------------------------+|
||          CP Root Certificates            ||        ||          CP Root Certificates            ||
||                                          ||        ||                                          ||
|| +-----+ +-----+ +-----+ +-----+          ||        || +-----+ +-----+ +-----+ +-----+          ||
|| | (5) | | (6) | | (7) | | (8) |          ||        || | (5) | | (6) | | (7) | | (8) |          ||
|| |C    | |C    | |C    | |C    |          ||        || |C    | |C    | |C    | |C    |          ||
|| | root| | root| | root| | root| .....    ||        || | root| | root| | root| | root| .....    ||
|| +-----+ +--+--+ +-----+ +--+--+          ||        || +-----+ +--+--+ +-----+ +--+--+          ||
|+------------+---------------+-------------+|        |+------------+---------------+-------------+|
+-------------+---------------+--------------+        +-------------+---------------+--------------+
              |               |                                     |               |
    +---------v-+           +-v---------+                 +---------v-+           +-v---------+
    |   CP CA   |           |   CP CA   |                 |   CP CA   |           |   CP CA   |
    |Certificate|           |Certificate|                 |Certificate|           |Certificate|
    +-----+-----+           +-----+-----+                 +-+-------+-+           +-----+-----+
          |                       |                         |       |                   |
          |                       |                         |       |                   |
          v                       v                         v       v                   v
    +-----------+           +-----------+          +-----------+ +-----------+        +-----------+
    |   CP AS   |           |   CP AS   |          |   CP AS   | |   CP AS   |        |   CP AS   |
    |Certificate|           |Certificate|          |Certificate| |Certificate|        |Certificate|
    +-----------+           +-----------+          +-----------+ +-----------+        +-----------+
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="certificate-specification">
        <name>Certificate Specification</name>
        <t>All certificates used in the SCION control-plane PKI are X.509 v3 certificates. However, the SCION specification is in some places more restrictive. This section defines these additional constraints and conditions compared to <xref target="RFC5280"/> for each type of SCION control-plane PKI certificate.</t>
        <t><strong>Note</strong>: The settings for the SCION-specific constraints and conditions are based on the SCION open-source implementation <eref target="https://github.com/scionproto/scion/">scionproto</eref>. Adjusting these settings to the requirements of a customer implementation may be possible and is allowed.</t>
        <section anchor="basic-fields-scion-specific-constraints-and-conditions">
          <name>Basic Fields: SCION-Specific Constraints and Conditions</name>
          <t>This section briefly describes the fields of the SCION control-plane PKI certificates based on X.509. These fields are relevant for each SCION certificate used in the control plane, regardless of the certificate type. For detailed descriptions of the full generic format of X.509 v3 certificates, see <xref target="RFC5280"/> and <eref target="https://handle.itu.int/11.1002/1000/13031">X509</eref>, clause 7.2. Additionally, the section lists the SCION-specific constraints and conditions compared to <xref target="RFC5280"/>, per certificate field.</t>
          <t><tt>TBSCertificate</tt> sequence: Contains information associated with the subject of the certificate and the CA that issued it. It includes the following fields:</t>
          <ul spacing="normal">
            <li>
              <t><tt>version</tt> field: Describes the version of the encoded certificate.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: "v1" and "v2" are not allowed.</t>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: <bcp14>MUST</bcp14> be set to "v3" (as extensions are used and mandatory in SCION).</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>serialNumber</tt> field: A positive integer assigned by the CA to each certificate. It <bcp14>MUST</bcp14> be unique for each certificate issued by a given CA.</t>
            </li>
            <li>
              <t><tt>signature</tt> field: Contains the identifier for the algorithm used by the CA to sign the certificate.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: Currently, SCION only supports the ECDSA signature algorithm. Find all details here: <xref target="certsign"/>.</t>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: As a consequence, the <tt>parameters</tt> field in the <tt>AlgorithmIdentifier</tt> sequence <bcp14>MUST NOT</bcp14> be used.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>issuer</tt> field: Contains the distinguished name (DN) of the entity that has issued and signed the certificate (usually a CA).  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>This field <bcp14>MUST</bcp14> be non-empty.</t>
                    </li>
                    <li>
                      <t>SCION implementations <bcp14>MUST</bcp14> ONLY use the “UTF8String” value type for all attributes (including the SCION-specific attribute <tt>ISD-AS number</tt>).</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: All SCION implementations <bcp14>MUST</bcp14> support the additional SCION-specific attribute <tt>ISD-AS number</tt>. For details, see <xref target="issuer"/> and <xref target="isd-as-nr"/>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>validity</tt> field: Defines the validity period of the certificate.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: All certificates used in SCION's control-plane PKI <bcp14>MUST</bcp14> have a well-defined expiration date. Certificates with a generalized time value are not valid and <bcp14>MUST</bcp14> be rejected.</t>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: SCION recommends a specific maximum validity period for each type of control-plane PKI certificate. For details, see <xref target="formal"/>. SCION implementations should adopt these values.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>subject</tt> field: Defines the entity that owns the certificate.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>This field <bcp14>MUST</bcp14> be non-empty.</t>
                    </li>
                    <li>
                      <t>SCION implementations <bcp14>MUST</bcp14> ONLY use the “UTF8String” value type for all attributes (including the SCION-specific attribute <tt>ISD-AS number</tt>).</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>Additional conditions and remarks</strong>: The <tt>subject</tt> field is specified in the same way as the <tt>issuer</tt> field. For details, see <xref target="issuer"/> and <xref target="isd-as-nr"/>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>subjectPublicKeyInfo</tt> field: Carries the public key of the certificate's subject (the entity that owns the certificate, as defined in the <tt>subject</tt> field). The <tt>subjectPublicKeyInfo</tt> field also identifies which algorithm to use with the key.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: For constraints regarding the algorithm, see the <tt>signature</tt> field.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>issuerUniqueID</tt> field: If set, it enables reusing the issuer name over time.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: This field is disallowed in SCION and <bcp14>MUST NOT</bcp14> be used.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>subjectUniqueID</tt> field: If set, it enables reusing the subject name over time.  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>SCION constraints</strong>: This field is disallowed in SCION and <bcp14>MUST NOT</bcp14> be used.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><tt>extensions</tt> sequence: Defines the extensions of the certificate. For a description of all extensions used in SCION, see <xref target="exts"/>.</t>
            </li>
          </ul>
          <section anchor="certsign">
            <name><tt>signature</tt> Field - Additional Information</name>
            <t>For security reasons, SCION uses a custom list of acceptable signature algorithms. This list of acceptable signature algorithms is specified in the <tt>signature</tt> field. The list currently only contains the ECDSA signature algorithm (defined in <eref target="https://webstore.ansi.org/standards/ascx9/ansix9621998">X962</eref>). However, the list might be extended in the future. The Object Identifiers (OIDs) for ECDSA are defined as <tt>ecdsa-with-SHA256</tt>, <tt>ecdsa-with-SHA384</tt>, and <tt>ecdsa-with-SHA512</tt> in <xref target="RFC5758"/>.</t>
            <t><strong>Important:</strong> The accepted cryptographic algorithms listed in this document are the only currently accepted cryptographic algorithms. SCION implementations <bcp14>MUST</bcp14> reject cryptographic algorithms not found in the list.</t>
            <t>The only accepted curves for ECDSA are:</t>
            <ul spacing="normal">
              <li>
                <t>NIST P-256 (NISTFIPS186-4, section D.1.2.3) (named <tt>secp256r1</tt> in <xref target="RFC5480"/>)</t>
              </li>
              <li>
                <t>NIST P-384 (NISTFIPS186-4, section D.1.2.4) (named <tt>secp384r1</tt> in <xref target="RFC5480"/>)</t>
              </li>
              <li>
                <t>NIST P-521 (NISTFIPS186-4, section D.1.2.5) (named <tt>secp521r1</tt> in <xref target="RFC5480"/>)</t>
              </li>
            </ul>
            <t>The OIDs for the above curves are specified in section 2.1.1.1 of <xref target="RFC5480"/>.</t>
            <t>The appropriate hash size to use when producing a signature with an ECDSA key is:</t>
            <ul spacing="normal">
              <li>
                <t>ECDSA with SHA-256, for a P-256 signing key</t>
              </li>
              <li>
                <t>ECDSA with SHA-384, for a P-384 signing key</t>
              </li>
              <li>
                <t>ECDSA with SHA-512, for a P-521 signing key</t>
              </li>
            </ul>
            <t><strong>Important:</strong> SCION implementations <bcp14>MUST</bcp14> include support for P-256, P-384, and P-521.</t>
          </section>
          <section anchor="issuer">
            <name><tt>issuer</tt> Field - Additional Information</name>
            <t>The <tt>issuer</tt> field contains the distinguished name (DN) of the CA that created the certificate. <xref target="RFC5280"/>, section 4.1.2.4, describes the field's syntax and attributes. In addition to these attributes, SCION implementations <bcp14>MUST</bcp14> also support the SCION-specific attribute <tt>ISD-AS number</tt>. This attribute is specified below.</t>
            <section anchor="isd-as-nr">
              <name><tt>ISD-AS number</tt> Attribute</name>
              <t>The <tt>ISD-AS number</tt> attribute identifies the SCION ISD and AS. In the SCION open source implementation, the attribute type is <tt>id-at-ia</tt>, defined as:<br/>
                <tt>id-at-ia AttributeType ::= {id-scion id-cppki(1) id-at(2) 1}</tt></t>
              <t>where <tt>id-scion</tt> specifies the root SCION object identifier (OID).</t>
              <t><strong>Note</strong>: The root SCION object identifier (OID) for the SCION open-source implementation is the IANA Private Enterprise Number '55324':<br/>
                <tt>id-scion ::= OBJECT IDENTIFIER {1 3 6 1 4 1 55324}</tt></t>
              <t>The following points apply when setting the attribute value of the <tt>ISD-AS number</tt> attribute:</t>
              <ul spacing="normal">
                <li>
                  <t>The string representation <bcp14>MUST</bcp14> follow the canonical formatting defined in <eref target="https://github.com/scionproto/scion/wiki/ISD-and-AS-numbering">ISD and AS numbering</eref>.</t>
                </li>
                <li>
                  <t>The canonical string representation uses a dash separator between the ISD and AS numbers.</t>
                </li>
                <li>
                  <t>The ISD numbers are formatted as decimal.</t>
                </li>
                <li>
                  <t>The canonical string formatting of AS numbers in the BGP AS range (0, 2<sup>32-1</sup>) is the decimal form. Larger AS numbers, i.e., from 2<sup>32</sup> to 2<sup>48-1</sup>, use a 16-bit, colon-separated, lower-case, hex encoding with leading zeros omitted: <tt>1:0:0</tt> to <tt>ffff:ffff:ffff</tt>.</t>
                </li>
              </ul>
              <t><strong>Example:</strong> AS <tt>ff00:0:110</tt> in ISD <tt>1</tt> is formatted as <tt>1-ff00:0:110</tt>.</t>
              <t>The <tt>ISD-AS number</tt> attribute <bcp14>MUST</bcp14> be present exactly once in the distinguished name of the certificate issuer or owner, specified in the <tt>issuer</tt> or <tt>subject</tt> field, respectively. Implementations <bcp14>MUST NOT</bcp14> create nor successfully verify certificates whose <tt>issuer</tt> and <tt>subject</tt> fields do not include the ISD-AS number at all, or include it more than once.</t>
              <t><strong>Note</strong>: Voting certificates are not required to include the <tt>ISD-AS number</tt> attribute in their distinguished name.</t>
            </section>
          </section>
        </section>
        <section anchor="exts">
          <name>Extensions</name>
          <t><xref target="RFC5280"/>, section 4.2.1, defines the syntax of the <tt>Extensions</tt> sequence in a X.509 certificate. Descriptions of each standard certificate extension can be found in <xref target="RFC5280"/>, section 4.2.1. The corresponding clauses in <eref target="https://handle.itu.int/11.1002/1000/13031">X509</eref> (10/2016) are clause 7.2 and clause 9, respectively.</t>
          <t>Currently, the following extensions are relevant for SCION:</t>
          <ul spacing="normal">
            <li>
              <t><tt>authorityKeyIdentifier</tt></t>
            </li>
            <li>
              <t><tt>subjectKeyIdentifier</tt></t>
            </li>
            <li>
              <t><tt>keyUsage</tt></t>
            </li>
            <li>
              <t><tt>extKeyUsage</tt></t>
            </li>
            <li>
              <t><tt>basicConstraints</tt></t>
            </li>
          </ul>
          <t>The following sections describe the SCION-specifics in regard to these extensions.</t>
          <section anchor="authoritykeyidentifier-extension">
            <name><tt>authorityKeyIdentifier</tt> Extension</name>
            <t>The <tt>authorityKeyIdentifier</tt> extension identifies the public key corresponding to the private key used to sign a certificate.</t>
            <t>For the syntax and definition of the <tt>authorityKeyIdentifier</tt> extension, see <xref target="RFC5280"/>, section 4.2.1.1, and <eref target="https://handle.itu.int/11.1002/1000/13031">X509</eref>, clause 9.2.2.1.</t>
            <t>The <tt>authorityKeyIdentifier</tt> extension provides three attributes to specify the public key:</t>
            <ul spacing="normal">
              <li>
                <t><tt>keyIdentifier</tt></t>
              </li>
              <li>
                <t><tt>authorityCertIssuer</tt></t>
              </li>
              <li>
                <t><tt>authorityCertSerialNumber</tt></t>
              </li>
            </ul>
            <t>In SCION, using the <tt>keyIdentifier</tt> attribute is the preferred way to specify the <tt>authorityKeyIdentifier</tt> extension.</t>
            <t><strong>Important:</strong> SCION implementations may also support the use of the <tt>authorityCertIssuer</tt> and <tt>authorityCertSerialNumber</tt> attributes. However, if these attributes are set and support for them is missing, implementations should error out.</t>
            <t>This extension <bcp14>MUST</bcp14> always be non-critical. However, SCION implementations <bcp14>MUST</bcp14> error out if the extension is not present AND the certificate is not self-signed.</t>
          </section>
          <section anchor="subject-key-id-ext">
            <name><tt>subjectKeyIdentifier</tt> Extension</name>
            <t>The <tt>subjectKeyIdentifier</tt> extension identifies certificates that contain a particular public key. It can be used, for example, by control-plane messages to identify which certificate to use for verification. The extension allows for overlapping control-plane CA keys, for example during updates.</t>
            <t>For the syntax and definition of the <tt>subjectKeyIdentifier</tt> extension, see <xref target="RFC5280"/>, section 4.2.1.2, and <eref target="https://handle.itu.int/11.1002/1000/13031">X509</eref>, clause 9.2.2.2.</t>
            <t>This extension <bcp14>MUST</bcp14> always be non-critical. However, SCION implementations <bcp14>MUST</bcp14> error out if the extension is not present.</t>
          </section>
          <section anchor="key-usage-ext">
            <name><tt>keyUsage</tt> Extension</name>
            <t>The <tt>keyUsage</tt> extension identifies the intended usage of the public key in the corresponding certificate. For the syntax and definition of the <tt>keyUsage</tt> extension, see <xref target="RFC5280"/>, section 4.2.1.3, and <eref target="https://handle.itu.int/11.1002/1000/13031">X509</eref>, clause 9.2.2.3.</t>
            <t>The attributes of the <tt>keyUsage</tt> extension define possible ways of using the public key. The attributes have the following meaning in SCION:</t>
            <ul spacing="normal">
              <li>
                <t><tt>digitalSignature</tt>: The public key can be used to verify the digital signature of a control-plane payload.</t>
              </li>
              <li>
                <t><tt>contentCommitment</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>keyEncipherment</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>dataEncipherment</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>keyAgreement</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>keyCertSign</tt>: The public key can be used to verify the CA signature on a control-plane certificate.</t>
              </li>
              <li>
                <t><tt>cRLSign</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>encipherOnly</tt>: Not used.</t>
              </li>
              <li>
                <t><tt>decipherOnly</tt>: Not used.</t>
              </li>
            </ul>
            <t><strong>Important:</strong> If a certificate’s public key is used to verify the signature of a control-plane payload (<tt>digitalSignature</tt> attribute), it must be possible to trace back the private key used to sign the certificate. This is done by referencing the ISD-AS and the subject key identifier (via the <tt>subjectKeyIdentifier</tt> extension). For more information about the <tt>subjectKeyIdentifier</tt> extension, see <xref target="subject-key-id-ext"/>.</t>
            <t>If present, the <tt>keyUsage</tt> extension should be marked as "critical". That is, the <tt>critical</tt> Boolean attribute of this extension must be set to TRUE (the default is FALSE).</t>
            <t><strong>Note</strong>: If a certificate extension is marked "critical", the public key in the certificate should only be used for the purpose set in the critical extension.</t>
            <t>Each control-plane PKI certificate type uses the public key differently, and consequently also specifies the attributes of the <tt>keyUsage</tt> extension differently. The next table shows the specifications per certificate type.</t>
            <table anchor="_table-4">
              <name>keyUsage extension - Specifications per certificate type</name>
              <thead>
                <tr>
                  <th align="left">Certificate Type</th>
                  <th align="left">Root</th>
                  <th align="left">CA</th>
                  <th align="left">AS</th>
                  <th align="left">Voting (regular and sensitive)</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">
                    <em>Attribute:</em></td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>keyUsage</tt> extension itself</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MAY</bcp14> be present (but is not required)</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>digitalSignature</tt></td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be set (1)</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be set (2)</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set</td>
                  <td align="left">If the extension is present, the <tt>digitalSignature</tt> attribute <bcp14>MUST NOT</bcp14> be set</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>keyCertSign</tt></td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be set</td>
                  <td align="left">If the extension is present, the <tt>keyCertSign</tt> attribute <bcp14>MUST NOT</bcp14> be set</td>
                </tr>
              </tbody>
            </table>
            <t>(1) The root certificate should not be used to verify control-plane messages.<br/>
(2) The CA certificate should not be used to verify control-plane messages.</t>
          </section>
          <section anchor="ext-key-usage-ext">
            <name><tt>extKeyUsage</tt> Extension</name>
            <t>The <tt>extKeyUsage</tt> extension specifies additional usages of the public key in the certificate. For the syntax and definition of the <tt>extKeyUsage</tt> extension, see <eref target="https://handle.itu.int/11.1002/1000/13031">X509</eref>, clause 9.2.2.4.</t>
            <t>SCION uses the following attributes of the Extended Key Usage extension, as defined in Section 4.2.1.12 of <xref target="RFC5280"/>:</t>
            <ul spacing="normal">
              <li>
                <t><tt>id-kp-serverAuth</tt>: If set, the public key can be used for SCION control-plane server authentication.</t>
              </li>
              <li>
                <t><tt>id-kp-clientAuth</tt>: If set, the public key can be used for SCION control-plane client authentication.</t>
              </li>
              <li>
                <t><tt>id-kp-timeStamping</tt>: If set, the public key can be used for the verification of timestamps.</t>
              </li>
            </ul>
            <t>Additionally, the Extended Key Usage extension sequence may include the SCION-specific attributes <tt>id-kp-root</tt>, <tt>id-kp-regular</tt>, and <tt>id-kp-sensitive</tt>. These attributes are used in the Trust Root Configuration setup, to distinguish root certificates, regular voting certificates, and sensitive voting certificates from each other. For more information, see <xref target="cert"/>.</t>
            <t>The specifications of the <tt>extKeyUsage</tt> extension differ per SCION control-plane PKI certificate type. The next table provides an overview of the specifications per certificate type.</t>
            <table anchor="_table-5">
              <name>extKeyUsage extension - Specifications per certificate type</name>
              <thead>
                <tr>
                  <th align="left">Certificate Type</th>
                  <th align="left">Root</th>
                  <th align="left">CA</th>
                  <th align="left">AS</th>
                  <th align="left">Voting (regular and sensitive)</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">
                    <em>Attribute:</em></td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>extKeyUsage</tt> extension itself</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MAY</bcp14> be present (not required)</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>id-kp-serverAuth</tt></td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be included</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be included</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be included, if the certificate is used on the server-side of a control-plane TLS session.</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be included</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>id-kp-clientAuth</tt></td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be included</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be included</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be included, if the certificate is used on the client-side of a control-plane TLS session.</td>
                  <td align="left">
                    <bcp14>MUST NOT</bcp14> be included</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>id-kp-timeStamping</tt></td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be included</td>
                  <td align="left"> </td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be included</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be included</td>
                </tr>
                <tr>
                  <td align="left">SCION-specific</td>
                  <td align="left">
                    <tt>id-kp-root</tt> <bcp14>MUST</bcp14> be included. For details, see <xref target="specatt"/></td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left">Regular voting cert: <tt>id-kp-regular</tt> <bcp14>MUST</bcp14> be included. For details, see <xref target="specatt"/><br/> Sensitive voting cert: <tt>id-kp-sensitive</tt> <bcp14>MUST</bcp14> be included. For details, see <xref target="specatt"/></td>
                </tr>
              </tbody>
            </table>
            <section anchor="specatt">
              <name>SCION-Specific Attributes</name>
              <t>The <tt>id-kp-root</tt>, <tt>id-kp-regular</tt>, and <tt>id-kp-sensitive</tt> attributes must be specified as follows:</t>
              <ul spacing="normal">
                <li>
                  <t>Root certificate:<br/> <tt>id-kp-root AttributeType ::= {id-scion id-cppki(1) id-kp(3) 3}</tt></t>
                </li>
                <li>
                  <t>Regular voting certificate:<br/> <tt>id-kp-regular AttributeType ::= {id-scion id-cppki(1) id-kp(3) 2}</tt></t>
                </li>
                <li>
                  <t>Sensitive voting certificate:<br/> <tt>id-kp-sensitive AttributeType ::= {id-scion id-cppki(1) id-kp(3) 1}</tt></t>
                </li>
              </ul>
              <t>where <tt>id-scion</tt> specifies the root SCION object identifier (OID).</t>
              <t><strong>Note</strong>: The root SCION object identifier (OID) for the SCION open-source implementation is the IANA Private Enterprise Number '55324':<br/>
                <tt>id-scion ::= OBJECT IDENTIFIER {1 3 6 1 4 1 55324}</tt></t>
            </section>
          </section>
          <section anchor="basic-constr-ext">
            <name><tt>basicConstraints</tt> Extension</name>
            <t>The <tt>basicConstraints</tt> extension specifies whether the certificate subject may act as a CA. For the syntax and definition of the <tt>basicConstraints</tt> extension, see <eref target="https://handle.itu.int/11.1002/1000/13031">X509</eref>, clause 9.4.2.1.</t>
            <t>The <tt>basicConstraints</tt> extension includes the following attributes relevant for SCION:</t>
            <ul spacing="normal">
              <li>
                <t><tt>cA</tt> attribute: Specifies whether the certificate subject may act as a CA. If yes, this attribute <bcp14>MUST</bcp14> be set to TRUE.</t>
              </li>
              <li>
                <t><tt>pathLenConstraint</tt> attribute: This attribute is only relevant if the <tt>cA</tt> attribute is set to TRUE. It specifies the maximum number of CA certificates that may follow this CA certificate in the certification chain. Value "0" means that this CA may only issue end-entity certificates, but no CA certificates. If the attribute is not set, there is no limit to the allowed length of the certification path.</t>
              </li>
            </ul>
            <t>The settings of the <tt>basicConstraints</tt> extension differ for each SCION control-plane PKI certificate type. The next table shows the specifications per certificate type.</t>
            <table anchor="_table-6">
              <name>basicConstraints extension - Specifications per certificate type</name>
              <thead>
                <tr>
                  <th align="left">Certificate Type</th>
                  <th align="left">Root</th>
                  <th align="left">CA</th>
                  <th align="left">AS</th>
                  <th align="left">Voting (regular and sensitive)</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">
                    <em>Attribute:</em></td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                  <td align="left"> </td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>basicConstraints</tt> extension itself</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be present</td>
                  <td align="left">
                    <bcp14>SHOULD NOT</bcp14> be present</td>
                  <td align="left">
                    <bcp14>SHOULD NOT</bcp14> be present</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>cA</tt></td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set to TRUE</td>
                  <td align="left">
                    <bcp14>MUST</bcp14> be set to TRUE</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be set to FALSE</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be set to FALSE</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>pathLenConstraint</tt></td>
                  <td align="left">
                    <bcp14>SHOULD</bcp14> be set to "1", <bcp14>MUST</bcp14> be marked as "critical"</td>
                  <td align="left">
                    <bcp14>SHOULD</bcp14> be set to "0" (1), <bcp14>MUST</bcp14> be marked as "critical"</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be absent.</td>
                  <td align="left">If the extension is present, this attribute <bcp14>MUST</bcp14> be absent.</td>
                </tr>
              </tbody>
            </table>
            <t>(1) Control-plane CAs can only issue end-entity certificates.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="trc-specification">
      <name>Trust Root Configuration Specification</name>
      <t>This section provides an in-depth specification of the trust root configuration (TRC) file (see <xref target="trc-spec"/>). The TRC contains policy information about an ISD and acts as a distribution mechanism for the trust anchors of that ISD. It enables securing the control-plane interactions, and is thus an integral part of the SCION infrastructure.</t>
      <t>The initial TRC of an ISD is signed during a signing ceremony and then distributed throughout the ISD. This signing ceremony follows specific rules; <xref target="trc-ceremony"/> describes these rules.</t>
      <section anchor="trc-spec">
        <name>TRC Specification</name>
        <t>The trust root configuration (TRC) is a signed collection of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref> v3 certificates. Additionally, the TRC contains ISD-specific policies encoded in a Cryptographic Message Syntax (CMS) <xref target="RFC5652"/> envelope.</t>
        <t>The TRC's certificates collection consists of a set of control-plane root certificates, which build the root of the certification chain for the AS certificates in an ISD. The other certificates in the TRC are solely used for signing the next TRC, a process called "voting". The verification of a new TRC thus depends on the policies and voting certificates defined in the previous TRC.</t>
        <t><strong>Note:</strong> See <xref target="cert-specs"/> for the general specifications of SCION's control-plane PKI certificates, as well as <xref target="cp-root-cert"/> and <xref target="cp-voting-cert"/>, for the specifications of the control-plane root certificates and voting certificates, respectively.</t>
        <t>This section provides a detailed specification of the TRC. It presents the TRC format definitions and describes the TRC payload fields. The section uses the ITU-T <eref target="https://handle.itu.int/11.1002/1000/14468">X.680</eref> syntax.</t>
        <section anchor="trc-states">
          <name> TRC Types and States</name>
          <t>The following types of TRCs exist:</t>
          <ul spacing="normal">
            <li>
              <t>Initial: The very first TRC of an ISD is the initial TRC of that ISD. It is a special case of the base TRC, where the number of the ISD is specified.</t>
            </li>
            <li>
              <t>Base: A base TRC is either the initial TRC, or the first TRC after a trust reset (see <xref target="trust-reset"/>). Trust for a base TRC cannot be inferred by verifying a TRC update; base TRCs are trusted axiomatically, similarly to how root CA certificates are trusted by clients in the Web PKI.</t>
            </li>
            <li>
              <t>Update: All non-base TRCs are updated TRCs. They are the product of either a regular or a sensitive update.</t>
            </li>
          </ul>
          <t>A TRC can have the following states:</t>
          <ul spacing="normal">
            <li>
              <t>Valid: The validity period of a TRC is defined in the TRC itself, in the <tt>validity</tt> field (see <xref target="validity"/>). A TRC is considered valid if the current time falls within its validity period.</t>
            </li>
            <li>
              <t>Active: An active TRC is a valid TRC that can be used for verifying certificate signatures. This is either the latest TRC or the predecessor TRC, if it is still in its grace period (as defined in the <tt>gracePeriod</tt> field of the new TRC, see <xref target="grace"/>). No more than two TRCs can be active at the same time for any ISD.</t>
            </li>
          </ul>
          <t><xref target="_figure-3"/> shows the content of both a base/initial TRC and the first regularly-updated TRC based on the base TRC. All elements of the shown TRCs are specified in detail in the following subsections.</t>
          <figure anchor="_figure-3">
            <name>The TRC on the left-hand side is the initial base TRC. The TRC on the right is the product of the first regular update of the base TRC.</name>
            <artwork><![CDATA[
+--------------------------------------------+        +--------------------------------------------+
|             TRC 1 (base, initial)          |        |             TRC 2 (regular update)         |
|+------------------------------------------+|        |+------------------------------------------+|
||- Version       - Core ASes               ||        ||- Version       - Core ASes               ||
||- ID            - Description             ||        ||- ID            - Description             ||
||- Validity      - No Trust Reset          ||        ||- Validity      - No Trust Reset          ||
||- Grace Period  - Voting Quorum           ||        ||- Grace Period  - Voting Quorum           ||
||- ...                                     ||        ||- ...                                     ||
|+------------------------------------------+|        |+------------------------------------------+|
|+--------------------++--------------------+|        |+--------------------++--------------------+|
||Votes (cert.indices)||   Regular Voting   ||        ||Votes (cert.indices)||   Regular Voting   ||
||                    ||    Certificates    ||        ||                    ||    Certificates    ||
||    (empty)         ||                    ||        ||    (1),(2)...      ||                    ||
||                    ||+-----+ +-----+     ||        ||                    ||+-----+ +-----+     ||
||                    ||| (1) | | (2) |     ||        ||                    ||| (1) | | (2) |     ||
||                    |||C    | |C    | ... ||        ||                    |||C    | |C    | ... ||
||                    ||| reg | | reg |     ||        ||                    ||| reg | | reg |     ||
|+--------------------+|+--+--+ +--+--+     ||        |+--------------------+|+-----+ +-----+     ||
|+--------------------+|   |       |        ||        |+--------------------+|                    ||
||                    ||   |       +--------++-----+  ||                    ||                    ||
||                    ||   +----------------++-+   |  ||                    ||                    ||
||    Signatures      |+--------------------+| |   |  ||    Signatures      |+--------------------+|
||                    |+--------------------+| |   |  ||                    |+--------------------+|
||+------------------+|| Sensitive Voting   || |   |  ||+------------------+|| Sensitive Voting   ||
|||73 A9 4E AO 0D ...|||    Certificates    || |   +--+>|48 AE E4 80 DB ...|||    Certificates    ||
||+------------------+||+-----+ +-----+     || |      ||+------------------+||+-----+ +-----+     ||
||+------------------+||| (3) | | (4) |     || |      ||+------------------+||| (3) | | (4) |     ||
|||53 B7 7C 98 56 ...||||C    | |C    |     || +------+>|7E BC 75 98 25 ...||||C    | |C    |     ||
||+------------------+||| sens| | sens| ... ||        ||+------------------+||| sens| | sens| ... ||
||        ...         ||+-----+ +-----+     ||        ||        ...         ||+-----+ +-----+     ||
|+--------------------++--------------------+|        |+--------------------++--------------------+|
|+------------------------------------------+|        |+------------------------------------------+|
||          CP Root Certificates            ||        ||          CP Root Certificates            ||
||                                          ||        ||                                          ||
|| +-----+ +-----+ +-----+ +-----+          ||        || +-----+ +-----+ +-----+ +-----+          ||
|| | (5) | | (6) | | (7) | | (8) |          ||        || | (5) | | (6) | | (7) | | (8) |          ||
|| |C    | |C    | |C    | |C    |          ||        || |C    | |C    | |C    | |C    |          ||
|| | root| | root| | root| | root| .....    ||        || | root| | root| | root| | root| .....    ||
|| +-----+ +-----+ +-----+ +-----+          ||        || +-----+ +-----+ +-----+ +-----+          ||
|+------------------------------------------+|        |+------------------------------------------+|
+--------------------------------------------+        +--------------------------------------------+
]]></artwork>
          </figure>
        </section>
        <section anchor="trc-format">
          <name> TRC Format</name>
          <t>The trust root configuration (TRC) of an ISD defines the roots of trust of the ISD, and builds the base of the ISD's control-plane PKI. It holds the root and voting certificates of the ISD and defines the ISD's trust policy.</t>
          <section anchor="trcpayload">
            <name> TRC Schema</name>
            <t>The following code block shows the format of a TRC specification file (the payload schema):</t>
            <artwork><![CDATA[
   TRCPayload  ::=  SEQUENCE {
       version   TRCFormatVersion,
       iD        TRCID,
       validity  Validity,

       gracePeriod   INTEGER,
       noTrustReset  BOOLEAN DEFAULT FALSE,
       votes         SEQUENCE OF INTEGER (SIZE (1..255)),

       votingQuorum  INTEGER (1..255),

       coreASes           SEQUENCE OF ASN,
       authoritativeASes  SEQUENCE OF ASN,
       description        UTF8String (SIZE (0..1024)),

       certificates       SEQUENCE OF Certificate }

   TRCFormatVersion  ::=  INTEGER { v1(0) }

   TRCID  ::=  SEQUENCE {
       iSD           ISD,
       serialNumber  INTEGER (1..MAX),
       baseNumber    INTEGER (1..MAX) }

   ISD  ::=  INTEGER (1..65535)

   Validity  ::=  SEQUENCE {
       notBefore  Time,
       notAfter   Time }

   ASN  ::=  INTEGER (1..281474976710655)
]]></artwork>
            <t>The <tt>TRCPayload</tt> sequence contains the identifying information of a TRC as well as policy information for TRC updates. Furthermore, it defines the list of certificates that build the trust anchor of the ISD.</t>
            <t>For signature calculation, the data that is to be signed is encoded using ASN.1 distinguished encoding rules (DER) <eref target="https://handle.itu.int/11.1002/1000/14472">X.690</eref>. For more details, see <xref target="signed-format"/>.</t>
          </section>
          <section anchor="trc-fields">
            <name> TRC Fields</name>
            <t>This section describes the syntax and semantics of all TRC payload fields.</t>
            <section anchor="version-field">
              <name> <tt>version</tt> Field</name>
              <t>The <tt>version</tt> field describes the version of the TRC format specification.</t>
              <t>Currently, the version <bcp14>MUST</bcp14> always be "v1".</t>
            </section>
            <section anchor="id">
              <name> <tt>iD</tt> Field</name>
              <t>The <tt>iD</tt> field specifies the unique identifier of the TRC.</t>
              <t>The identifier is a unique sequence of</t>
              <ul spacing="normal">
                <li>
                  <t>ISD number (<tt>iSD</tt> attribute),</t>
                </li>
                <li>
                  <t>base number (<tt>baseNumber</tt> attribute), and</t>
                </li>
                <li>
                  <t>TRC serial number (<tt>serialNumber</tt> attribute).</t>
                </li>
              </ul>
              <t>All numbers <bcp14>MUST</bcp14> be positive integers.</t>
              <ul spacing="normal">
                <li>
                  <t>The <strong>ISD number</strong> <bcp14>MUST</bcp14> be an integer in the inclusive range from 64 to 4094 (i.e., the numbering range for public ISDs, see <xref target="input"/>).</t>
                </li>
                <li>
                  <t>The <strong>base number</strong> indicates the starting point of the current TRC update chain. This starting point is either the ISD's initial TRC or the currently valid base TRC, if the valid base TRC differs from the initial TRC. The latter <bcp14>MUST</bcp14> be the case after a trust reset.</t>
                </li>
                <li>
                  <t>The <strong>serial number</strong> represents the current update cycle, counting from the initial TRC of a specific ISD.</t>
                </li>
              </ul>
              <t>A TRC where the base number is equal to the serial number is a base TRC. The initial TRC is a special case of a base TRC. An ISD's initial TRC <bcp14>MUST</bcp14> have a serial number of 1 and a base number of 1. With every TRC update, the serial number <bcp14>MUST</bcp14> be incremented by one. This facilitates uniquely identifying the predecessor and successor TRC in a TRC update chain.</t>
              <t>If a trust reset is necessary, a new base TRC is announced, in order to start a new and clean TRC update chain. The base number of this new TRC update chain <bcp14>SHOULD</bcp14> be the number following the serial number of the latest TRC that was produced by a non-compromised TRC update for this ISD.</t>
              <t><strong>Example</strong><br/>
The following simple example illustrates how to specify the ID of the TRCs in an TRC update chain for <em>ISD 74</em>. The IDs are given in a human-readable notation, where Bxx is the base number, and Sxx the serial number.</t>
              <table anchor="_table-7">
                <name>ID of TRCs in TRC update chain</name>
                <thead>
                  <tr>
                    <th align="left">Update</th>
                    <th align="left">TRC ID</th>
                    <th align="left">Remarks</th>
                  </tr>
                </thead>
                <tbody>
                  <tr>
                    <td align="left">Initial</td>
                    <td align="left">ISD74-B01-S01</td>
                    <td align="left"> </td>
                  </tr>
                  <tr>
                    <td align="left">Regular</td>
                    <td align="left">ISD74-B01-S02</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Regular</td>
                    <td align="left">ISD74-B01-S03</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Sensitive</td>
                    <td align="left">ISD74-B01-S04</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Trust reset</td>
                    <td align="left">ISD74-<strong>B05</strong>-S05</td>
                    <td align="left">A trust reset includes the creation of a new base TRC. The new base number follows the serial number "04" of the latest TRC resulting from a non-compromised TRC update for this ISD.</td>
                  </tr>
                  <tr>
                    <td align="left">Regular</td>
                    <td align="left">ISD74-B05-S06</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">Regular</td>
                    <td align="left">ISD74-B05-S07</td>
                    <td align="left">Only the serial number is incremented.</td>
                  </tr>
                  <tr>
                    <td align="left">And so on</td>
                    <td align="left"> </td>
                    <td align="left"> </td>
                  </tr>
                </tbody>
              </table>
            </section>
            <section anchor="validity">
              <name> <tt>validity</tt> Field</name>
              <t>The <tt>validity</tt> field defines the validity period of the TRC. This is the period of time during which the TRC is in the "valid" state. The <tt>notBefore</tt> and <tt>notAfter</tt> attributes of the <tt>validity</tt> field specify the lower and upper bound of the time interval during which a TRC can be active.</t>
              <t><strong>Note:</strong> An active TRC is a valid TRC that can be used for verifying certificate signatures. The time period during which a TRC is active can be shorter than the time period during which the TRC is valid. For more information, see <xref target="trc-states"/>.</t>
              <t>The <tt>validity</tt> field consists of a sequence of two dates, as defined in section 7.2. of <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.</t>
              <t>In addition to this standard definition, the following constraint applies to the <tt>validity</tt> field of the TRC used in SCION:</t>
              <ul spacing="normal">
                <li>
                  <t>All TRCs <bcp14>MUST</bcp14> have a well-defined expiration date. SCION implementations <bcp14>MUST NOT</bcp14> create TRCs that use the "99991231235959Z" generalized time value, and verifiers <bcp14>MUST</bcp14> error out when encountering such a TRC.</t>
                </li>
              </ul>
            </section>
            <section anchor="grace">
              <name> <tt>gracePeriod</tt> Field</name>
              <t>The <tt>gracePeriod</tt> field of a TRC specifies the period of time during which the predecessor TRC can still be considered active (the "grace period"). The grace period starts at the beginning of the validity period of the new TRC.</t>
              <t>The validity period of the predecessor TRC ends when</t>
              <ul spacing="normal">
                <li>
                  <t>the grace period has passed,</t>
                </li>
                <li>
                  <t>the predecessor’s expiration time is reached, or</t>
                </li>
                <li>
                  <t>the successor TRC of the new TRC has been announced.</t>
                </li>
              </ul>
              <t><strong>Note:</strong> The event that happens first marks the end of the predecessor's validity period.</t>
              <t>The <tt>gracePeriod</tt> field defines the grace period as a number of seconds (positive integer).</t>
              <t>The value of the <tt>gracePeriod</tt> field in a base TRC <bcp14>MUST</bcp14> be zero. The value of the <tt>gracePeriod</tt> field in a non-base TRC <bcp14>SHOULD</bcp14> be non-zero. It should be long enough to provide sufficient overlap between the TRCs in order to facilitate interruption-free operations in the ISD. If the grace period is too short, some control-plane AS certificates might expire before the corresponding AS can fetch an updated version from its CA.</t>
            </section>
            <section anchor="notrustreset">
              <name> <tt>noTrustReset</tt> Boolean</name>
              <t>The <tt>noTrustReset</tt> Boolean specifies whether a trust reset is forbidden by the ISD. Within a TRC update chain, this value CANNOT be changed by a regular or sensitive update. However, it is possible to change the <tt>noTrustReset</tt> value in the event of a trust reset, where a new base TRC is created.</t>
              <t>The <tt>noTrustReset</tt> field is optional and defaults to FALSE.</t>
              <t><strong>Important:</strong> Note that once the <tt>noTrustReset</tt> Boolean is set to TRUE and a trust reset is disallowed, this cannot be reversed. Therefore, ISDs <bcp14>SHOULD</bcp14> always set this value to FALSE, unless they have sufficiently assessed the risks and implications of making a trust reset impossible.</t>
              <t><strong>Note:</strong> A trust reset represents a special use case where a new base TRC is created. It therefore differs from a TRC update (regular or sensitive), as the signatures in the new base TRC cannot be verified with the certificates contained in the predecessor TRC. Instead, a trust reset base TRC must be axiomatically trusted, similarly to how the initial TRC is trusted.</t>
            </section>
            <section anchor="votes">
              <name><tt>votes</tt> Field</name>
              <t>The <tt>votes</tt> field contains a sequence of indices that refer to the voting certificates in the predecessor TRC. If index i is part of the <tt>votes</tt> field, then the voting certificate at position i in the <tt>certificates</tt> sequence of the predecessor TRC casted a vote on the successor TRC. For more information on the <tt>certificates</tt> sequence, see <xref target="cert"/>.</t>
              <t><strong>Note:</strong> In a base TRC, the <tt>votes</tt> sequence is empty.</t>
              <t>Every entry in the <tt>votes</tt> sequence <bcp14>MUST</bcp14> be unique.<br/>
Further restrictions on votes are discussed in <xref target="update"/>.</t>
              <t><strong>Note:</strong> The <tt>votes</tt> sequence of indices is mandatory in order to prevent stripping voting signatures from the TRC. Absence of the <tt>votes</tt> sequence makes it possible to transform a TRC with more voting signatures than the voting quorum into multiple verifiable TRCs with the same payload, but different voting signature sets. This would violate the requirement of uniqueness of a TRC.</t>
            </section>
            <section anchor="quorum">
              <name> <tt>votingQuorum</tt> Field</name>
              <t>The <tt>votingQuorum</tt> field defines the number of necessary votes on a successor TRC to make it verifiable.</t>
              <t>A voting quorum greater than one will prevent a single entity from creating a malicious TRC update.</t>
            </section>
            <section anchor="core">
              <name> <tt>coreASes</tt> Field</name>
              <t>The <tt>coreASes</tt> field contains the AS numbers of the core ASes in this ISD.</t>
              <t>Each core AS number <bcp14>MUST</bcp14> be unique in the sequence of core AS numbers. That is, each AS number must appear only once in the <tt>coreASes</tt> field.</t>
              <section anchor="revoking-or-assigning-core-status">
                <name> Revoking or Assigning Core Status</name>
                <ul spacing="normal">
                  <li>
                    <t>To revoke the core status of a given AS, remove the respective AS number from the sequence of AS numbers in the <tt>coreASes</tt> field.</t>
                  </li>
                  <li>
                    <t>To assign the core status to a given AS, add the respective AS number to the sequence of AS numbers in the <tt>coreASes</tt> field.</t>
                  </li>
                </ul>
                <t><strong>Important:</strong> Revoking or assigning the core status of/to an AS always requires a (sensitive) TRC update.</t>
              </section>
            </section>
            <section anchor="auth">
              <name> <tt>authoritativeASes</tt> Field</name>
              <t>The <tt>authoritativeASes</tt> field contains the AS numbers of the authoritative ASes in this ISD.</t>
              <t>Authoritative ASes are those ASes in an ISD that always have the latest TRCs of the ISD. As a consequence, authoritative ASes also start the announcement of a TRC update.</t>
              <ul spacing="normal">
                <li>
                  <t>Every authoritative AS <bcp14>MUST</bcp14> be a core AS and be listed in the <tt>coreASes</tt> field.</t>
                </li>
                <li>
                  <t>Each authoritative AS number <bcp14>MUST</bcp14> be unique in the sequence of authoritative AS numbers. That is, each AS number must appear only once in the <tt>authoritativeASes</tt> field.</t>
                </li>
              </ul>
              <section anchor="revoking-or-assigning-authoritative-status">
                <name> Revoking or Assigning Authoritative Status</name>
                <ul spacing="normal">
                  <li>
                    <t>To revoke the authoritative status of a given AS, remove the respective AS number from the sequence of AS numbers in the <tt>authoritativeASes</tt> field.</t>
                  </li>
                  <li>
                    <t>To assign the authoritative status to a given AS, add the respective AS number to the sequence of AS numbers in the <tt>authoritativeASes</tt> field.</t>
                  </li>
                </ul>
                <t><strong>Important:</strong> Revoking or assigning the authoritative status of/to an AS always requires a (sensitive) TRC update.</t>
              </section>
            </section>
            <section anchor="description">
              <name> <tt>description</tt> Field</name>
              <t>The <tt>description</tt> field contains a UTF-8 encoded string that describes the ISD.</t>
              <ul spacing="normal">
                <li>
                  <t>The <tt>description</tt> field <bcp14>SHOULD NOT</bcp14> be empty.</t>
                </li>
                <li>
                  <t>The description of the ISD <bcp14>MUST</bcp14> be in English. Additionally, the <tt>description</tt> field <bcp14>MAY</bcp14> contain information in other languages.</t>
                </li>
              </ul>
            </section>
            <section anchor="cert">
              <name><tt>certificates</tt> Field</name>
              <t>The voting ASes and the certification authorities (CAs) of an ISD are not specified explicitly in the ISD's TRC. Instead, this information is defined by the list of voting and root certificates in the <tt>certificates</tt> field of the TRC payload.</t>
              <t>The <tt>certificates</tt> field is a sequence of self-signed X.509 certificates. Each certificate in the certificate sequence must be one of the following types:</t>
              <ul spacing="normal">
                <li>
                  <t>a sensitive voting certificate,</t>
                </li>
                <li>
                  <t>a regular voting certificate, or</t>
                </li>
                <li>
                  <t>a CP root certificate.</t>
                </li>
              </ul>
              <t>A certificate that is no control-plane root or voting certificate <bcp14>MUST NOT</bcp14> be included in the sequence of certificates in the <tt>certificates</tt> field.</t>
              <t><strong>Note</strong>: A certificate's type (voting or root) is specified in the <tt>extKeyUsage</tt> extension of the certificate, by means of the SCION-specific attributes <tt>id-kp-regular</tt>, <tt>id-kp-sensitive</tt>, and <tt>id-kp-root</tt>, respectively. For more information, see <xref target="ext-key-usage-ext"/>.</t>
              <t>The following constraints <bcp14>MUST</bcp14> hold for each certificate in the <tt>certificates</tt> field of the TRC payload:</t>
              <ul spacing="normal">
                <li>
                  <t>Each certificate <bcp14>MUST</bcp14> be unique in the sequence of certificates. That is, each certificate must appear only once in the <tt>certificates</tt> field.</t>
                </li>
                <li>
                  <t>The <tt>issuer</tt> / <tt>serialNumber</tt> pair for each certificate <bcp14>MUST</bcp14> be unique.</t>
                </li>
                <li>
                  <t>If an ISD-AS number is present in the distinguished name of the certificate, this ISD number <bcp14>MUST</bcp14> be equal to the ISD number of the TRC (which is defined in the <tt>iD</tt> field (see <xref target="id"/>).</t>
                </li>
                <li>
                  <t>Every certificate <bcp14>MUST</bcp14> have a validity period that fully contains the validity period of this TRC. That is, the <tt>notBefore</tt> date of this TRC's validity period <bcp14>MUST</bcp14> be equal to or later than the certificate's <tt>notBefore</tt> date, and the <tt>notAfter</tt> date of this TRC's validity period <bcp14>MUST</bcp14> be before or equal to the certificate's <tt>notAfter</tt> date.</t>
                </li>
                <li>
                  <t>Per certificate type, every certificate distinguished name <bcp14>MUST</bcp14> be unique.</t>
                </li>
              </ul>
              <t>The following must hold for the entire sequence of certificates in the <tt>certificates</tt> field:</t>
              <ul spacing="normal">
                <li>
                  <t><tt>votingQuorum</tt> &lt;= count (sensitive voting certificates) <br/>
That is, the quorum defined in the TRC's <tt>votingQuorum</tt> field (<xref target="quorum"/>) must be smaller than or equal to the number of <em>sensitive</em> voting certificates specified in the TRC's <tt>certificates</tt> field.</t>
                </li>
                <li>
                  <t><tt>votingQuorum</tt> &lt;= count (regular voting certificates) <br/>
That is, the quorum defined in the TRC's <tt>votingQuorum</tt> field (<xref target="quorum"/>) must be smaller than or equal to the number of <em>regular</em> voting certificates specified in the TRC's <tt>certificates</tt> field.</t>
                </li>
              </ul>
            </section>
          </section>
        </section>
        <section anchor="signed-format">
          <name> TRC Signature Syntax</name>
          <t>A TRC contains policy information about an ISD and acts as a distribution mechanism for the trust anchors of that ISD. Each TRC (payload) is digitally signed. The syntax used to sign and encapsulate the TRC payload is the Cryptographic Message Syntax (CMS), as defined in <xref target="RFC5652"/>. The signed TRC payload is of the CMS signed-data content type, as defined in Section 5 of <xref target="RFC5652"/>, and encapsulated in a CMS <tt>ContentInfo</tt> element, as defined in Section 3 of <xref target="RFC5652"/>. For detailed information on the general syntax definitions of the Cryptographic Message Syntax, see sections 3 and 5 of <xref target="RFC5652"/>.</t>
          <section anchor="scion-specific-rules">
            <name>SCION-specific rules</name>
            <t>SCION implementations have to fulfil the following additional rules, on top of the general syntax rules from <xref target="RFC5652"/>:</t>
            <ul spacing="normal">
              <li>
                <t><tt>EncapsulatedContentInfo</tt> sequence:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>The <tt>eContentType</tt> field must be set to "id-data".</t>
                  </li>
                  <li>
                    <t>The content of the <tt>eContent</tt> field must be the DER-encoded TRC payload. This has the benefit that the format is backwards compatible with PKCS #7, as described in Section 5.2.1 of <xref target="RFC5652"/>.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><tt>SignedData</tt> sequence:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>The <tt>certificates</tt> field <bcp14>MUST</bcp14> be left empty. The certificate pool used to verify a TRC update is already specified in the <tt>certificates</tt> field of the predecessor TRC's payload (see also <xref target="cert"/>).</t>
                  </li>
                  <li>
                    <t>The <tt>version</tt> field <bcp14>MUST</bcp14> be set to "1". This is because SCION uses the "id-data" content type to encapsulate content info, and does not specify any certificate in the <tt>SignedData</tt> sequence (see also Section 5.1 of <xref target="RFC5652"/>).</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><tt>SignerIdentifier</tt> choice:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>The type of signer identifier chosen here <bcp14>MUST</bcp14> be <tt>IssuerAndSerialNumber</tt>.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><tt>SignerInfo</tt> sequence:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>The <tt>version</tt> field <bcp14>MUST</bcp14> be set to "1". This is because SCION uses the <tt>IssuerAndSerialNumber</tt> type of signer identifier (see also Section 5.3 of <xref target="RFC5652"/>).</t>
                  </li>
                  <li>
                    <t>The algorithm specified in the <tt>signatureAlgorithm</tt> field <bcp14>MUST</bcp14> be one of the algorithms supported by SCION (for details, see <xref target="certsign">signature Field - Additional Information</xref>).</t>
                  </li>
                  <li>
                    <t>The <tt>digestAlgorithm</tt> is determined by the algorithm specified in the <tt>signatureAlgorithm</tt> field.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </section>
          <section anchor="trc-equality">
            <name> TRC Equality</name>
            <t>The signer information in the signed TRC is part of an unordered set, per <xref target="RFC5652"/>. This implies that the signer information can be reordered without affecting verification. Certain operations, however, require TRCs to be equal, according to the following equality definition:</t>
            <t><strong>Two TRCs are equal, if and only if their payloads are byte equal.</strong></t>
            <t>Two TRCs with byte equal payloads can be considered as equal, because the TRC payload exactly defines which signatures must be attached in the signed TRC:</t>
            <ul spacing="normal">
              <li>
                <t>The required signatures from voting certificates are explicitly mentioned in the <tt>votes</tt> field of the payload: If index "i" is part of the <tt>votes</tt> field, then the voting certificate at position i in the <tt>certificates</tt> sequence of the predecessor TRC casted a vote on the successor TRC. See also <xref target="votes"/>.</t>
              </li>
              <li>
                <t>The required signatures for new certificates are implied by the currently valid TRC payload, and, in case of a TRC update, the predecessor payload.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="certification-path-trust-anchor-pool">
          <name> Certification Path - Trust Anchor Pool</name>
          <t>The certification path of a control-plane AS certificate starts in a control-plane root certificate. The control-plane root certificates for a given ISD are distributed via the TRC. However, AS certificates and the corresponding signing CA certificates are <strong>not</strong> part of the TRC, but bundled into certificate chains and distributed separately from the corresponding TRC. This separation makes it possible to extend the validity period of the root certificate, and to update the corresponding TRC, without having to modify the certificate chain. To be able to validate a certification path, each AS must build a collection of root certificates from the latest TRC of the relevant ISD. The following section explains how to build a trust anchor pool.</t>
          <t><strong>Note:</strong> Any entity sending information that is secured by the CP-PKI, such as control-plane messages, <bcp14>MUST</bcp14> be able to provide all the necessary trust material, such as certificates, to verify said information. If any cryptographic material is missing in the process, the relying party <bcp14>MUST</bcp14> query the originator of the message for the missing material. If it cannot be resolved, the verification process fails. For more details, see 4.2 "Signing and Verifying Control-Plane Messages" <xref target="signing-verifying-cp-messages"/>.</t>
          <section anchor="trc-selection">
            <name> TRC Selection For Trust Anchor Pool</name>
            <t>The selection of the right set of TRCs to build the trust anchor pool depends on the time of verification. The trust anchor pool is usually used to verify control-plane messages. In this case, the time of verification is the current time. However, if the trust anchor pool will be used for auditing, the time of verification is the point in time for which you want to check whether a given signature was verifiable.</t>
            <t>The selection algorithm for building the trust anchor pool is described in pseudo-python code below.</t>
            <sourcecode type="python"><![CDATA[
    def select_trust_anchors(trcs: Dict[(int,int), TRC], verification_time: int) -> Set[RootCert]:
        """
        Args:
            trcs: The dictionary mapping (serial number, base number) to the TRC for a given ISD.
            verification_time: The time of verification.

        Returns:
            The set of CP Root certificates that act as trust anchors.
        """
        # Find highest base number that has a TRC with a validity period
        # starting before verification time.
        base_nr = 1
        for trc in trcs.values():
            if trc.id.base_nr > base_nr and trc.validity.not_before <= verification_time:
                base_nr = trc.id.base_nr

        # Find TRC with highest serial number with the given base number and a
        # validity period starting before verification time.
        serial_nr = 1
        for trc in trcs[isd].values():
            if trc.id.base_nr != base_nr:
                continue
            if trc.id.serial_nr > serial_nr and trc.validity.not_before <= verification_time:
                serial_nr = trc.id.serial_nr

        candidate = trcs[(serial_nr, base_nr)]

        # If the verification time is not inside the validity period,
        # there is no valid set of trust anchors.
        if not candidate.validity.contains(verification_time):
            return set()

        # If the grace period has passed, only the certificates in that TRCs
        # may be used as trust anchors.
        if candidate.validity.not_before + candidate.grace_period < verification_time:
            return collect_trust_anchors(candidate)

        predecessor = trcs.get((serial_nr-1, base_nr))
        if not predecessor or predecessor.validity.not_after < verification_time:
            return collect_trust_anchors(candidate)

        return collect_trust_anchors(candidate) | collect_trust_anchors(predecessor)


    def collect_trust_anchors(trc: TRC) -> Set[RootCert]:
        """
        Args:
            trc: A TRC from which the CP Root Certificates shall be extracted.

        Returns:
            The set of CP Root certificates that act as trust anchors.
        """
        roots = set()
        for cert in trc.certificates:
            if not cert.basic_constraints.ca:
                continue
            roots.add(cert)
        return roots
]]></sourcecode>
          </section>
        </section>
        <section anchor="update">
          <name> TRC Updates</name>
          <t>All non-base TRCs of an ISD are updates of the ISD's base TRC(s). The TRC update chain consists of regular and sensitive TRC updates. The type of update determines the (payload) information that changes in the updated TRC. This section describes the rules that apply to updating a TRC in regard to the payload information contained in the TRC. Some rules are valid for both update types, some only apply to a regular or a sensitive TRC update, respectively. Based on the type of update, a different set of voters is necessary to create a verifiable TRC update - the section includes a description of the corresponding voting (signing) process. To verify a TRC update, a relying party must perform a couple of checks. These checks are listed at the end of the section.</t>
          <section anchor="change-new">
            <name> Changed or New Certificates</name>
            <t>In the context of a TRC update,</t>
            <ul spacing="normal">
              <li>
                <t>A certificate is <em>changing</em>, if the certificate is part of the <tt>certificates</tt> sequence in the predecessor TRC, but no longer part of the <tt>certificates</tt> sequence in the updated TRC. Instead, the <tt>certificates</tt> sequence of the updated TRC holds another certificate of the <em>same type</em> and with the <em>same distinguished name</em>.</t>
              </li>
              <li>
                <t>A certificate is <em>new</em>, if there is <strong>no</strong> certificate of the same type and distinguished name at all in the <tt>certificates</tt> sequence of the predecessor TRC.</t>
              </li>
            </ul>
            <t><strong>Note:</strong> Every new sensitive or regular voting certificate in a TRC attaches a signature to the TRC. This is done to ensure that the freshly included voting entity agrees with the contents of the TRC it is now part of.</t>
          </section>
          <section anchor="update-rules-overview">
            <name> Update Rules - Overview</name>
            <t>The following table gives an overview of the types of TRC update as well as the rules that must apply in regard to the updated TRC's payload information.<br/>
The sections that follow provide more detailed descriptions of each rule.</t>
            <table anchor="_table-8">
              <name>Overview of the update types and corresponding rules</name>
              <thead>
                <tr>
                  <th align="left">Type of Update</th>
                  <th align="left">Payload Updated TRC - Unchanged Elements</th>
                  <th align="left">Payload Updated TRC - Required Changes</th>
                  <th align="left">Payload Updated TRC: Other Rules to Hold</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">Both Regular AND Sensitive Updates</td>
                  <td align="left">- <tt>iD</tt> field: <tt>iSD</tt> and <tt>baseNumber</tt> <br/> - <tt>noTrustReset</tt> field</td>
                  <td align="left">
                    <tt>iD</tt> field: <tt>serialNumber</tt> <bcp14>MUST</bcp14> be incremented by 1</td>
                  <td align="left">
                    <tt>votes</tt> field: Number of votes (indices) =&gt; number set in the <tt>votingQuorum</tt> field of the predecessor TRC</td>
                </tr>
                <tr>
                  <td align="left">Regular TRC Update</td>
                  <td align="left">- Quorum in the <tt>votingQuorum</tt> field<br/>- Core ASes in the <tt>coreASes</tt> field<br/>- ASes in the <tt>authoritativeASes</tt> field<br/>- Nr. and distinguished names of root &amp; voting certificates in the <tt>certificates</tt> field<br/>- Set of sensitive voting certificates in the <tt>certificates</tt> field</td>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>votes</tt> field:<br/> - All votes must only refer to <em>regular</em> voting certificates in the predecessor TRC<br/>- Must include votes of each changed regular voting certificate from the predecessor TRC<br/> <tt>signatures</tt> field:<br/> - Must include signatures of each changed root certificate from the predecessor TRC</td>
                </tr>
                <tr>
                  <td align="left">Sensitive TRC Update</td>
                  <td align="left">If the update does not qualify as a regular update, it is a sensitive update</td>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>votes</tt> field: <br/> - All votes must only refer to <em>sensitive</em> voting certificates in the predecessor TRC</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="general-update-rules">
            <name> General Update Rules</name>
            <t>The following rules <bcp14>MUST</bcp14> hold for each updated TRC, independent of the update type:</t>
            <ul spacing="normal">
              <li>
                <t>The <tt>iSD</tt> and <tt>baseNumber</tt> in the <tt>iD</tt> field <bcp14>MUST NOT</bcp14> change (see also <xref target="id"/>).</t>
              </li>
              <li>
                <t>The <tt>serialNumber</tt> in the <tt>iD</tt> field <bcp14>MUST</bcp14> be incremented by one.</t>
              </li>
              <li>
                <t>The <tt>noTrustReset</tt> field <bcp14>MUST NOT</bcp14> change (see also <xref target="notrustreset"/>).</t>
              </li>
              <li>
                <t>The <tt>votes</tt> sequence of the updated TRC <bcp14>MUST</bcp14> only contain indices that refer to sensitive or regular voting certificates in the predecessor TRC. This guarantees that the updated TRC only contains valid votes authenticated by sensitive or regular voting certificates in the predecessor TRC. For more information, see <xref target="votes"/> and <xref target="cert"/>.</t>
              </li>
              <li>
                <t>The number of votes in the updated TRC <bcp14>MUST</bcp14> be greater than or equal to the number set in the <tt>votingQuorum</tt> field of the predecessor TRC (see <xref target="quorum"/>). The number of votes corresponds to the number of indices in the <tt>votes</tt> field of the updated TRC.</t>
              </li>
            </ul>
          </section>
          <section anchor="regular-trc-update">
            <name> Regular TRC Update</name>
            <t>A regular TRC update is a periodic re-issuance of the TRC where the entities and policies listed in the TRC remain unchanged.</t>
            <t>A TRC update qualifies as a regular update, if the following rules apply in regard to the TRC's payload information.</t>
            <ul spacing="normal">
              <li>
                <t>The settings of the following fields in the updated TRC <bcp14>MUST</bcp14> remain the same compared to the predecessor TRC:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>The voting quorum set in the <tt>votingQuorum</tt> field.</t>
                  </li>
                  <li>
                    <t>The core ASes specified in the <tt>coreASes</tt> field.</t>
                  </li>
                  <li>
                    <t>The authoritative ASes specified in the <tt>authoritativeASes</tt> field.</t>
                  </li>
                  <li>
                    <t>The number of sensitive and regular voting certificates as well as CP root certificates included in the <tt>certificates</tt> field, and their distinguished names.</t>
                  </li>
                  <li>
                    <t>The set of sensitive voting certificates specified in the <tt>certificates</tt> field.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>For every regular voting certificate that changes, the regular voting certificate in the predecessor TRC is part of the voters on the updated TRC. That is, for each changed regular voting certificate, an index in the <tt>votes</tt> field of the updated TRC <bcp14>MUST</bcp14> refer to the changed regular voting certificate in the predecessor TRC.</t>
              </li>
              <li>
                <t>For every CP root certificate that changes, the updated TRC <bcp14>MUST</bcp14> include a signature created with the private key belonging to the changed CP root certificate (which is part of the predecessor TRC).</t>
              </li>
              <li>
                <t>In order for a regular TRC update to be verifiable, all votes <bcp14>MUST</bcp14> be cast by <em>regular</em> voting certificates. That is, each index in the <tt>votes</tt> field of the regularly updated TRC <bcp14>MUST</bcp14> refer to a <em>regular</em> voting certificate in the <tt>certificates</tt> field of the predecessor TRC.</t>
              </li>
            </ul>
          </section>
          <section anchor="sensitive-trc-update">
            <name> Sensitive TRC Update</name>
            <t>If a TRC update does not qualify as a regular update, it is considered a sensitive update.</t>
            <ul spacing="normal">
              <li>
                <t>In order for a sensitive update to be verifiable, all votes <bcp14>MUST</bcp14> be cast by <em>sensitive</em> voting certificates. That is, each index in the <tt>votes</tt> field of the sensitively updated TRC <bcp14>MUST</bcp14> refer to a <em>sensitive</em> voting certificate in the <tt>certificates</tt> field of the predecessor TRC.</t>
              </li>
            </ul>
          </section>
          <section anchor="signing-a-trc-update">
            <name> Signing a TRC Update</name>
            <t>As described above, a set of voters must cast votes on the updated TRC to make it verifiable. The <tt>votingQuorum</tt> field of the predecessor TRC (see <xref target="quorum"/>) defines the required number of voters, which will represent regular or sensitive voting certificates, respectively. Furthermore, if one or more <em>new</em> certificates are added to the updated TRC, the corresponding voting representatives must also sign the updated TRC, in order to show that they have access to the private keys listed in these fresh certificates. This is called "showing proof-of-possession", and done by signing the TRC with the respective private key. For the distinction between changed and new certificates in a TRC update, see <xref target="change-new"/>.</t>
            <t>It is up to the ISD members to decide how the "casting a vote" procedure for updated TRCs will take place. Some ISDs will make a distinction between regular and sensitive updates. These ISDs divide the regular and sensitive signing keys in different security classes and act accordingly. For example, they keep the regular key in an online vault while the sensitive key would be stored offline in cold storage. This way, the regular TRC update would lend itself to being automated (since the keys are accessible online) whereas the sensitive one would require manual actions to access the offline key. Other ISDs, however, keep both regular and sensitive keys online and perform both updates automatically.</t>
          </section>
          <section anchor="trc-update-verification">
            <name> TRC Update Verification</name>
            <t>To verify a TRC update, the relying party must perform the following checks:</t>
            <ul spacing="normal">
              <li>
                <t>Check that the specified update rules as described above are respected.</t>
              </li>
              <li>
                <t>Check whether the update is regular or sensitive.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>In case of a regular update,
                    </t>
                    <ul spacing="normal">
                      <li>
                        <t>check that the signatures for the changing certificates are present and verifiable, and</t>
                      </li>
                      <li>
                        <t>check that all votes are cast by a regular voting certificate.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t>In case of a sensitive update, check that all votes are cast by a sensitive voting certificate.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>In both cases, check that all signatures are verifiable, and no superfluous signatures are attached.</t>
              </li>
            </ul>
            <t>If one or more of the above checks gives a negative result, the updated TRC should be rejected.</t>
          </section>
        </section>
      </section>
      <section anchor="trc-ceremony">
        <name>Initial TRC Signing Ceremony</name>
        <t>The very first base TRC of an ISD, called the initial TRC, is a special case of the base TRC where the number of the ISD is chosen. The initial TRC must be signed during a special signing ceremony--all voting representatives of the initial TRC need to take part in this signing ceremony to sign the agreed-upon TRC. As part of the ceremony, the public keys of all voters are exchanged. The TRC is then distributed throughout the ISD. All entities within an ISD can initially obtain an authentic TRC, by means of a secure off- or online mechanism.</t>
        <t><xref target="initial-ceremony"/> describes a possible procedure for the signing ceremony of an ISD's initial TRC. It is in principle up to the initial members of an ISD how to shape the signing ceremony. However, it is recommended having a process in line with the ceremony described in the Appendix.</t>
      </section>
    </section>
    <section anchor="deploy-cp-pki">
      <name>Deploying the CP PKI - Specifications</name>
      <t>This section provides several specifications regarding the deployment of the control-plane PKI.</t>
      <section anchor="deploying-a-trc">
        <name>Deploying a TRC</name>
        <section anchor="base-trc">
          <name> Base TRC</name>
          <t>Base TRCs are trust anchors and thus axiomatically trusted. All ASes within an ISD must be pre-loaded with the currently valid base-version TRC of their own ISD. For all specifications regarding the creation and distribution of initial/base TRCs, see <xref target="trc-ceremony"/>.</t>
        </section>
        <section anchor="trc-update">
          <name> TRC Update</name>
          <t>All non-base TRCs of an ISD are updates of the ISD's base TRC(s). The TRC update chain consists of regular and sensitive TRC updates. The specifications and rules that apply to updating a TRC are described in <xref target="update"/>.</t>
          <section anchor="discover-trcupdate">
            <name> TRC Update Discovery</name>
            <t>Relying parties <bcp14>MUST</bcp14> have at least one valid TRC available. Relying parties <bcp14>MUST</bcp14> discover TRC updates within the grace period defined in the updated TRC. They <bcp14>SHOULD</bcp14> discover TRC updates in a matter of minutes to hours. Additionally, the following requirement must be satisfied:</t>
            <t><strong>Requirement</strong><br/>
Any entity sending information that is secured by the CP-PKI <bcp14>MUST</bcp14> be able to provide all the necessary trust material to verify said information.</t>
            <t>SCION provides the following mechanisms for discovering TRC updates and fulfilling the above requirement:</t>
            <ul spacing="normal">
              <li>
                <t><em>Beaconing Process</em><br/>
The TRC version is announced in the beaconing process. Each AS must announce what it considers to be the latest TRC. Furthermore, each AS must include the hash value of the TRC contents to facilitate the discovery of discrepancies. Therefore, relying parties that are part of the beaconing process discover TRC updates passively. That is, a core AS notices TRC updates for remote ISDs that are on the beaconing path. A non-core AS only notices TRC updates for the local ISD through the beaconing process. The creation of a new TRC should trigger the generation of new control-plane messages, as the propagation of control-plane messages will help other ASes rapidly discover the new TRC.</t>
              </li>
              <li>
                <t><em>Path Lookup</em><br/>
In every path segment, all ASes must reference the latest TRC of their ISD. Therefore, when resolving paths, every relying party will notice TRC updates, even remote ones.<br/>
                  <strong>Note:</strong> The above mechanism only works when there is an active communication between the relying party and the ISD in question.</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="signing-verifying-cp-messages">
        <name> Signing and Verifying Control-Plane Messages</name>
        <t>SCION requires that control-plane messages are signed. The main purpose of the SCION control-plane PKI is providing a mechanism to distribute and authenticate public keys that are used to verify control-plane messages and information. For example, each hop information in a path segment is signed by the respective AS. Consequently, all relying parties must be able to verify signatures with the help of the CP-PKI.</t>
        <t>The following sections specify the requirements that apply to the signing and verification of control-plane messages.</t>
        <section anchor="signing-a-control-plane-message">
          <name> Signing a Control-Plane Message</name>
          <t>An AS signs control-plane messages with the private key that corresponds to the (valid) AS' certificate.</t>
          <t>The AS <bcp14>MUST</bcp14> attach the following information as signature metadata. It is the minimum information a relying party requires to identify which certificate to use to verify the signed message.</t>
          <ul spacing="normal">
            <li>
              <t>ISD-AS number: The ISD-AS number of the signing entity. For specification details, see <xref target="isd-as-nr"/>.</t>
            </li>
            <li>
              <t>Subject key identifier: The identifier of the public key that must be used to verify the message. For specification details, see <xref target="subject-key-id-ext"/>.</t>
            </li>
          </ul>
          <t>Additionally, the signer <bcp14>SHOULD</bcp14> include the following information:</t>
          <ul spacing="normal">
            <li>
              <t>Serial and base number of the latest TRC: Including this information allows relying parties to discover TRC updates and trust resets. For specification details, see <xref target="id"/>.</t>
            </li>
            <li>
              <t>Timestamp: For many messages, the time at which it was signed is useful information to ensure freshness.</t>
            </li>
          </ul>
        </section>
        <section anchor="verifying-a-control-plane-message">
          <name> Verifying a Control-Plane Message</name>
          <t>When the relying party receives a control-plane message they want to verify, the relying party first needs to identify the certificate needed to validate the corresponding signature on the message.</t>
          <t>AS certificates are bundled together with the corresponding signing CA certificate into certificate chains. For efficiency, SCION distributes these certificate chains separately from the signed messages. A certificate chain is verified against the CP root certificate. However, the root certificate is <strong>not</strong> bundled in the chain, but with the TRC. This makes it possible to extend the validity period of the root certificate, and to update the corresponding TRC, without having to modify the certificate chain.</t>
          <t>To verify a control-plane message, the relying party must perform the following steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Build a collection of root certificates from the latest TRC of the relevant ISD (that is, the ISD referenced in the signature metadata of the message). If the grace period (see <xref target="grace"/>) introduced by the latest TRC is still on-going, the root certificates in the second-to-latest TRC must also be included. For a description on how to build the correct collection of certificates, see <xref target="trc-selection"/>.</t>
            </li>
            <li>
              <t>If the signature metadata of the message contains the serial and base number of the latest TRC, the relying party must check that they have this latest TRC. If not, the relying party must request the latest TRC.</t>
            </li>
            <li>
              <t>After constructing the pool of root certificates, the relying party must select the certificate chain used to verify the message. The AS certificate included in this certificate chain <bcp14>MUST</bcp14> have the following properties:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The ISD-AS number in the subject of the AS certificate <bcp14>MUST</bcp14> match the ISD-AS number in the signature metadata. See also <xref target="isd-as-nr"/>.</t>
                </li>
                <li>
                  <t>The subject key identifier of the AS certificate <bcp14>MUST</bcp14> match the subject key identifier in the signature metadata. See also <xref target="subject-key-id-ext"/>.</t>
                </li>
                <li>
                  <t>The AS certificate <bcp14>MUST</bcp14> be valid at verification time. Normally, this will be the current time. In special cases, e.g., auditing, the time can be set to the past to check if the message was verifiable at the given time.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>After selecting a certificate chain to verify the control-plane messages, the relying party must verify the certificate chain, by:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Executing the regular X.509 verification procedure. For details, see <eref target="https://handle.itu.int/11.1002/1000/13031">X.509</eref>.</t>
                </li>
                <li>
                  <t>Checking that
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>all subjects of the certificates in the chain carry the same ISD number (see also <xref target="isd-as-nr"/>,</t>
                    </li>
                    <li>
                      <t>each certificate is of the correct type (see also <xref target="overview"/>), and</t>
                    </li>
                    <li>
                      <t>the CA certificate validity period covers the AS certificate validity period.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>If the verification of the certificate chain was successful, the relying party can now verify the control-plane messages, with the root certificates from the certificate chain.</t>
            </li>
          </ol>
          <t>If any cryptographic material is missing in the process, the relying party must query the originator of the message for the missing material. If it cannot be resolved, the verification process fails.</t>
          <t><strong>Important:</strong> An implication of the above procedure is that path segments should be verifiable at time of use. It is not enough to rely on path segments being verified on insert, since TRC updates that change the root key can invalidate a certificate chain.</t>
        </section>
      </section>
      <section anchor="creating-a-new-control-plane-as-certificate">
        <name>Creating a New Control-Plane AS Certificate</name>
        <t>The steps required to create a new AS certificate are the following:</t>
        <ol spacing="normal" type="1"><li>
            <t>The AS creates a new key pair and a certificate signing request (CSR) using that key pair.</t>
          </li>
          <li>
            <t>The AS sends the certificate signing request to the relevant CA within the ISD.</t>
          </li>
          <li>
            <t>The CA uses its CA key and the CSR to create the new AS certificate.</t>
          </li>
          <li>
            <t>The CA sends the AS certificate back to the AS.</t>
          </li>
        </ol>
        <t>When an AS joins an ISD, the first CSR is sent out of band to one of the CAs as part of the formalities to join the ISD. Subsequent certificate renewals may be automated and can leverage the control-plane communication infrastructure.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The goal of SCION is to provide a secure inter-domain network architecture, therefore this paragraph focuses on <em>inter</em>-AS security considerations. Specifically, it covers potential attacks and mitigations for the control-plane PKI. All <em>intra</em>-AS trust- and security aspects are out of scope.</t>
      <section anchor="dependency-on-certificates">
        <name>Dependency on Certificates</name>
        <t>In public key infrastructures, certificate authorities have both the responsibility and power to issue and revoke certificates. If a CA is compromised or malicious, this power can be abused. A misbehaving CA could refuse to issue certificates to legitimate entities, or even issue illegitimate certificates to allow impersonation of another entity. In the context of the SCION control-plane PKI, refusing to issue or renew a certificate to an AS will ultimately cut that AS off from the network, turning the CP-PKI into a potential network "kill switch". In order to prevent this, within each ISD there are usually multiple independent CAs.</t>
        <t>SCION’s trust architecture fundamentally differs from a global monopolistic trust model. In SCION, each ISD manages its own trust roots instead of a single global entity providing those roots. This structure gives each ISD autonomy in terms of key management and in terms of trust, and prevents the occurrence of a global kill switch affecting all ISDs at once. However, each ISD is still susceptible of compromises that could affect or halt other components (control plane and forwarding). The following sections explain these cases and possible countermeasures.</t>
        <section anchor="compromise-of-an-isd">
          <name>Compromise of an ISD</name>
          <t>Compared to other trust architectures, in SCION there is no central authority that could "switch off" an ISD, as each ISD relies on its own independent cryptographic trust roots. Each AS within an ISD is therefore dependant on its ISD's PKI for its functioning. This section discusses potential compromises of the PKI at various levels of the hierarchy.</t>
          <ul spacing="normal">
            <li>
              <t>On TRC level: The private root keys of the root certificates contained in an TRC are used to sign CA certificates. If one of these private root keys is compromised, the adversary could issue illegitimate CA certificates which may be used in further attacks. To maliciously  perform a TRC update, an attacker would need to compromise multiple voting keys. This number depends on the voting quorum set in the TRC: the higher the quorum, the more unlikely a malicious update will be.</t>
            </li>
            <li>
              <t>On CA level: The private keys of an ISD's CA certificates are used to sign the AS certificates. All ASes within an ISD obtain certificates directly from the CAs. If one of the CA’s keys is compromised, an adversary could issue illegitimate AS certificates, which may be used in further attacks.</t>
            </li>
            <li>
              <t>On AS level: Each AS within an ISD signs control-plane messages, such as the Path Construction Beacons (PCBs) used for path discovery, with their AS private key. If the keys of an AS are compromised by an adversary, this adversary can illegitimately sign control-plane messages, including PCBs. This means that the adversary can also manipulate the PCBs, and propagate the manipulated PCBs to neighboring ASes or register/store them as path segments.</t>
            </li>
          </ul>
        </section>
        <section anchor="recovery-from-compromise">
          <name>Recovery from Compromise</name>
          <t>This section deals with possible recovery from the compromises discussed in the previous paragraph.
As described in <xref target="substitutes-to-revocation"/>, there is no revocation in the CP-PKI.</t>
          <ul spacing="normal">
            <li>
              <t>On TRC level: If any of the root keys or voting keys contained in the TRC are compromised, the TRC must be updated as described in <xref target="update"/>. Note that this is a sensitive TRC update, as the certificate related to the compromised private key must be replaced with an entirely new certificate (and not just changed). A trust reset is only required in the case the number of compromised  keys at the same time is greater or equal than the TRC's quorum (see <xref target="quorum"/>).</t>
            </li>
            <li>
              <t>On CA level: If the private key related to a CA certificate is compromised, the impacted CA AS must obtain a new CA certificate from the corresponding root AS. CA certificates are generally short lived to limit the impact of compromise. Alternatively, with a TRC update, a new root keys can also be forced, invalidating the compromised CA.</t>
            </li>
            <li>
              <t>On AS level: In the event of a key compromise of a (non-core) AS, the impacted AS needs to obtain a new certificate from its CA. This process will vary depending on internal issuance protocols.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="denial-of-service-attacks">
        <name>Denial of Service Attacks</name>
        <t>As described previously, the SCION's control-plane PKI lays the foundation for the authentication procedures in SCION. It provides each AS within a specific ISD with a certified key pair. These keys enable the authentication of all control-plane messages - every AS and endpoint can verify all control-plane messages by following the certificate chain.</t>
        <t>The relying party must be able to discover and obtain new or updated cryptographic material. For the control plane messages, this is simplified by the observation that the sender of a message (e.g. of a path construction beacon during path exploration or a path segment during a path lookup) always has all the cryptographic material to verify it. Thus, the receiver can always immediately obtain all the cryptographic material from the message originator.
As the corresponding PKI messaging thus only occurs when the control plane is already communicating, these requests to obtain cryptographic material are not prone to additional denial of service attacks. We therefore refer to <xref target="I-D.scion-cp"/> for a more detailed description of DoS vulnerabilities of control-plane messages.</t>
        <t>For certificate renewal, on the other hand, this does not apply.
Denial of Service on the CA infrastructure or on the communication links from the individual ASes to the CA, could be used by an attacker to prevent victim ASes from renewing their certificates, halting the path discovery process.
This risk can be mitigated in multiple ways:</t>
        <ul spacing="normal">
          <li>
            <t>CAs only need to be accessible from ASes within the ISD, reducing the potential DoS attack surface</t>
          </li>
          <li>
            <t>ISDs usually rely on multiple CAs</t>
          </li>
          <li>
            <t>ISDs could create policies and processes to renew certificates out-of-band</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
      <t>The SCION AS and ISD number are SCION-specific numbers. They are currently allocated by Anapaya Systems, a provider of SCION-based networking software and solutions (see <eref target="https://docs.anapaya.net/en/latest/resources/isd-as-assignments/">Anapaya ISD AS assignments</eref>). This task is currently being transitioned from Anapaya to the SCION Association.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <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="RFC5398">
          <front>
            <title>Autonomous System (AS) Number Reservation for Documentation Use</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <date month="December" year="2008"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, two blocks of Autonomous System numbers (ASNs) are reserved for use in examples in RFCs, books, documentation, and the like. This document describes the reservation of two blocks of ASNs as reserved numbers for use in documentation. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5398"/>
          <seriesInfo name="DOI" value="10.17487/RFC5398"/>
        </reference>
        <reference anchor="RFC5480">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC5758">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Additional Algorithms and Identifiers for DSA and ECDSA</title>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document updates RFC 3279 to specify algorithm identifiers and ASN.1 encoding rules for the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) digital signatures when using SHA-224, SHA-256, SHA-384, or SHA-512 as the hashing algorithm. This specification applies to the Internet X.509 Public Key infrastructure (PKI) when digital signatures are used to sign certificates and certificate revocation lists (CRLs). This document also identifies all four SHA2 hash algorithms for use in the Internet X.509 PKI. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5758"/>
          <seriesInfo name="DOI" value="10.17487/RFC5758"/>
        </reference>
        <reference anchor="RFC6996">
          <front>
            <title>Autonomous System (AS) Reservation for Private Use</title>
            <author fullname="J. Mitchell" initials="J." surname="Mitchell"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document describes the reservation of Autonomous System Numbers (ASNs) that are for Private Use only, known as Private Use ASNs, and provides operational guidance on their use. This document enlarges the total space available for Private Use ASNs by documenting the reservation of a second, larger range and updates RFC 1930 by replacing Section 10 of that document.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="6"/>
          <seriesInfo name="RFC" value="6996"/>
          <seriesInfo name="DOI" value="10.17487/RFC6996"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="BARRERA17">
          <front>
            <title>The SCION internet architecture</title>
            <author fullname="David Barrera" initials="D." surname="Barrera">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Laurent Chuat" initials="L." surname="Chuat">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Adrian Perrig" initials="A." surname="Perrig">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Raphael M. Reischuk" initials="R." surname="Reischuk">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <author fullname="Pawel Szalachowski" initials="P." surname="Szalachowski">
              <organization>ETH Zürich in Switzerland</organization>
            </author>
            <date month="May" year="2017"/>
          </front>
          <seriesInfo name="Communications of the ACM" value="vol. 60, no. 6, pp. 56-65"/>
          <seriesInfo name="DOI" value="10.1145/3085591"/>
          <refcontent>Association for Computing Machinery (ACM)</refcontent>
        </reference>
        <reference anchor="CHUAT22" target="https://doi.org/10.1007/978-3-031-05288-0">
          <front>
            <title>The Complete Guide to SCION</title>
            <author initials="L." surname="Chuat" fullname="Laurent Chuat">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Legner" fullname="Markus Legner">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Basin" fullname="David Basin">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Hausheer" fullname="David Hausheer">
              <organization>Otto von Guericke University Magdeburg</organization>
            </author>
            <author initials="S." surname="Hitz" fullname="Samuel Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="P." surname="Mueller" fullname="Peter Mueller">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="ISBN" value="978-3-031-05287-3"/>
        </reference>
        <reference anchor="I-D.scion-overview" target="https://datatracker.ietf.org/doc/draft-dekater-panrg-scion-overview/">
          <front>
            <title>SCION Overview</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="I-D.scion-components" target="https://datatracker.ietf.org/doc/draft-rustignoli-panrg-scion-components/">
          <front>
            <title>SCION Components Analysis</title>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="I-D.scion-cp" target="https://datatracker.ietf.org/doc/draft-dekater-scion-controlplane/">
          <front>
            <title>SCION Control Plane</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author initials="S." surname="Hitz" fullname="Samuel Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1408?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to Fritz Steinmann (SIX Group AG), Juan A. Garcia Prado (ETH Zurich) and Russ Housley (IETF) for reviewing this document. We are also very grateful to Adrian Perrig (ETH Zurich), for providing guidance and feedback about each aspect of SCION. Finally, we are indebted to the SCION development teams of Anapaya and ETH Zurich, for their practical knowledge and for the documentation about the CP PKI, as well as to the authors of <xref target="CHUAT22"/> - the book is an important source of input and inspiration for this draft.</t>
    </section>
    <section numbered="false" anchor="initial-ceremony">
      <name>Appendix A. Signing Ceremony Initial TRC</name>
      <t>The following sections describe a possible signing ceremony for the first (initial) base TRC of an ISD. Although each ISD is free to decide how to shape this signing ceremony, it is recommended establishing a procedure similar to the one below.</t>
      <section numbered="false" anchor="ceremony-participants">
        <name> Ceremony Participants</name>
        <t>A signing ceremony includes participants from member organizations of the respective Isolation Domain.
The participants of the signing ceremony fulfill different roles:</t>
        <ul spacing="normal">
          <li>
            <t>The <strong>ceremony administrator</strong> is in charge of moderating the signing process. He/she guides all participants through the steps they need to take. The ceremony administrator may also act as an intermediary between participants when they share information with each other.</t>
          </li>
          <li>
            <t>A <strong>voting AS representative</strong> is capable of creating voting signatures on the TRC. This means the voting representative is in possession of a device with the private keys of the respective certificates in the TRC.</t>
          </li>
          <li>
            <t>A <strong>witness</strong> is any person that participates in the ceremony as a passive entity. The witness has no active role in any of the steps of the ceremony, but can stop the process and inquire for more information if they feel the integrity of the process might have been compromised.</t>
          </li>
        </ul>
        <t><strong>Note:</strong> It is assumed that the member organizations of the ISD have decided in advance, before the signing ceremony, on the roles of the ceremony participants. That is, they have reached agreement about the Certificate Authority (CA) ASes (that will also issue the root certificates), the voting ASes, the representatives of the voting ASes, the ceremony administrator and the witnesses.</t>
        <t><strong>Note:</strong> For the signing ceremony, it is assumed that all parties are trustworthy. Issues encountered during the ceremony are assumed to be caused by honest mistakes, and not by malicious intent. Hash comparison checks are included to counter mistakes, such that every participant is sure that they operate on the same data. Furthermore, the private keys of each participant never leave their machine. The ceremony administrator does not have to be entrusted with private keys.</t>
      </section>
      <section numbered="false" anchor="ceremony-preparations">
        <name>Ceremony Preparations</name>
        <t>Prior to the ceremony, participants decide on the physical location of the ceremony, the devices that will be used during the ceremony and the policy of the ISD. Specifically, the voting entities agree on the following parameters:</t>
        <ul spacing="normal">
          <li>
            <t>validity of the TRC,</t>
          </li>
          <li>
            <t>voting quorum,</t>
          </li>
          <li>
            <t>core ASes/authoritative ASes,</t>
          </li>
          <li>
            <t>description, and</t>
          </li>
          <li>
            <t>list of CP root certificates.</t>
          </li>
        </ul>
        <t>When these values are agreed upon, a number of voters, equal to or larger than the specified voting quorum, needs to execute the signing ceremony. For the base TRC, all voting entities need to be present with both their sensitive and regular voting keys. The ceremony process is structured in multiple rounds of data sharing. The ceremony administrator leads the interaction and gives instructions to each participant.</t>
        <section numbered="false" anchor="location">
          <name> Location</name>
          <t>The location must provide electricity and enough power sockets for each participant. Furthermore, it should provide a monitor (or projector) that allows the ceremony administrator to screencast.</t>
        </section>
        <section numbered="false" anchor="devices">
          <name> Devices</name>
          <t>Each party brings their own device that is provisioned with the required material, as described below.</t>
          <ul spacing="normal">
            <li>
              <t>Device to exchange data. This device can either be provided by the ceremony administrator, or, if preferable, by any of the voting representatives.</t>
            </li>
            <li>
              <t>Ceremony administrator's device: The ceremony administrator should bring a machine that is capable of creating and verifying a TRC. Furthermore, it needs to be able to compute the SHA-512 digest (hash value) of files.</t>
            </li>
            <li>
              <t>Voting representative's device: The voting representative should bring a machine that is capable of signing and verifying TRCs. Thus, the machine needs to have access to all the voting private keys. Furthermore, it needs to be able to compute the SHA-512 digest (hash value) of the files. The exact binaries that are required are described in a separate document.</t>
            </li>
          </ul>
          <t><strong>Important:</strong> It is very important that all devices, especially the data exchange device, are not compromised. Therefore, the ceremony should ideally include a procedure to verify that the devices are secure.</t>
        </section>
        <section numbered="false" anchor="preparation-steps">
          <name>Preparation Steps</name>
          <t>Each party involved in a TRC signing ceremony must go through a few steps in preparation for the ceremony. This section outlines these steps.</t>
          <section numbered="false" anchor="preparatory-tasks-of-the-ceremony-administrator">
            <name> Preparatory Tasks of the Ceremony Administrator</name>
            <t>In the preparation phase of the TRC Signing Ceremony, the ceremony administrator has the following tasks:</t>
            <ol spacing="normal" type="1"><li>
                <t>Send out the high-level TRC Signing Ceremony description and the document describing the TRC Signing Ceremony Phases to the participants, all in digital form.</t>
              </li>
              <li>
                <t>Remind all representatives of the voting ASes that they need to agree on a common TRC policy before scheduling the TRC ceremony.</t>
              </li>
              <li>
                <t>Bring all digitally distributed documents as a printout for all parties that take part.</t>
              </li>
            </ol>
          </section>
          <section numbered="false" anchor="preparatory-tasks-of-the-voting-as-representatives">
            <name> Preparatory Tasks of the Voting AS Representatives</name>
            <t>The preparatory task of the representatives of the voting ASes (short: the voters) is to generate the necessary certificates.</t>
            <t><strong>Important:</strong> Before generating the certificates, all voters need to agree on a preliminary TRC policy, in particular on the <strong>validity period of the TRC</strong>. This is necessary because all the certificates that are generated in advance must <strong>cover the full TRC validity period</strong>. The other policy values could be amended during the ceremony itself.</t>
            <t>Each representative of a voting AS must create the following keys and certificates:</t>
            <ul spacing="normal">
              <li>
                <t>A sensitive voting private key, and a certificate holding the corresponding public key.</t>
              </li>
              <li>
                <t>A regular voting private key, and a certificate holding the corresponding public key.</t>
              </li>
            </ul>
          </section>
          <section numbered="false" anchor="preparatory-tasks-of-the-certificate-authority-ases">
            <name>Preparatory Tasks of the Certificate Authority ASes</name>
            <t>Each AS that will be a Certificate Authority (a so-called CA AS) must ensure that the following key and certificate is available:</t>
            <ul spacing="normal">
              <li>
                <t>A control-plane root private key, and a certificate holding the corresponding public key.</t>
              </li>
            </ul>
            <t>This implies that there will be one control-plane root certificate per CA AS.</t>
            <t><strong>Note</strong>: Representatives of CA ASes must not be present at the signing ceremony themselves, as they do not have to put a signature on the TRC. However, if a CA AS does not attend the signing ceremony in person, it must ensure that the corresponding root certificate is available at the ceremony to be shared.</t>
          </section>
        </section>
      </section>
      <section numbered="false" anchor="ceremony-process">
        <name> Ceremony Process</name>
        <t>The ceremony process for the initial base TRC is structured in multiple rounds of data sharing. The ceremony administrator leads the interaction and instructs each participant with what to do.</t>
        <t>The ceremony process contains the following phases:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="phase1">Phase 1: Certificate Exchange</xref>. In the first phase of the ceremony, all voting parties share the certificates that must be part of the TRC with the ceremony administrator.</t>
          </li>
          <li>
            <t><xref target="phase2">Phase 2: Generation of the TRC Payload</xref>. In the second phase, the ceremony administrator generates the TRC payload based on the bundled certificates and the agreed-upon ISD policy.</t>
          </li>
          <li>
            <t><xref target="phase3">Phase 3: TRC Signing</xref>. In the third phase, each voting representative attaches the required signatures to the TRC.</t>
          </li>
          <li>
            <t><xref target="phase4">Phase 4: TRC Validation</xref>. In the final phase of the ceremony, all voting representatives share the signed TRC with the ceremony administrator, who aggregates it in a single signed TRC document.</t>
          </li>
        </ul>
        <t>A detailed description of each phase follows below.</t>
        <section numbered="false" anchor="phase1">
          <name> Phase 1: Certificate Exchange</name>
          <t>In Phase 1 of the signing ceremony, all parties share the certificates that must be part of the TRC with the ceremony administrator. For the representatives of the voting ASes, these are the sensitive and the regular voting certificates. For the representatives of the CA ASes, these are the CP root certificates. If a CA AS does not attend the signing ceremony in person, it must ensure that the corresponding root certificate is available at the ceremony to be shared.</t>
          <t>The actual sharing happens over the data exchange device, which goes from one voting representative to the next. Each representative copies the requested certificates from their own machine onto the data exchange device, before forwarding the device to the next voter. The last representative returns the device to the ceremony administrator.</t>
          <t><strong>Important:</strong> Note that only the <strong>certificates</strong> must be shared during this step, <strong>not</strong> the private keys. Copying a private key by mistake invalidates the security of the ceremony.</t>
          <t>For each provided certificate, the ceremony administrator checks that its validity period covers the previously agreed-upon TRC validity, that the signature algorithms are correct, and that the certificate is of the valid type (root, sensitive voting or regular voting certificate). If the results of these checks are as expected, the ceremony administrator computes the SHA256 sum for each certificate.</t>
          <t>The ceremony administrator then aggregates and bundles the provided certificates, and calculates the hash value (SHA-512 digest) over the entire bundle. Additionally, the ceremony administrator displays all hash values on the monitor.</t>
          <t>The ceremony administrator now shares the bundle with the representatives of the voting and CA ASes. This could happen again via the data exchange device, which goes from one representative to the next. Each representative verifies that the certificates they contributed have the same hash value as the displayed value on the monitor. Furthermore, all representatives must confirm that the hash value of the bundled certificates on their machine is equal to the value on the monitor.</t>
          <t>Phase 1 is concluded when every representative has confirmed that the SHA256 sums are correct.</t>
          <t><strong>Note:</strong> If there is a mismatch in any of the SHA256 sums, Phase 1 needs to be repeated.</t>
        </section>
        <section numbered="false" anchor="phase2">
          <name>Phase 2: Generation of the TRC Payload</name>
          <t>In Phase 2 of the ceremony, the ceremony administrator generates the TRC payload based on the bundled certificates and the agreed-upon ISD policy. The result is displayed on the monitor along with a hash value (SHA-512 digest).</t>
          <t>To be able to generate the payload, the ceremony administrator must ask the voting representatives for</t>
          <ul spacing="normal">
            <li>
              <t>The ISD number of the ISD. The number (identifier, ID) of an ISD must be chosen and agreed upon by the participants during the signing ceremony of the ISD's initial TRC. The ceremony administrator needs the ISD number to specify the identifier (ID) of the initial TRC. This <tt>iD</tt> is part of the TRC payload. For more information, see <xref target="id"/>.</t>
            </li>
            <li>
              <t>The description of the TRC. For more information, see <xref target="description"/>.</t>
            </li>
            <li>
              <t>The AS numbers of the core ASes of the ISD. For more information, see <xref target="core"/>.</t>
            </li>
            <li>
              <t>The AS numbers of the authoritative ASes of the ISD. For more information, see <xref target="auth"/>.</t>
            </li>
            <li>
              <t>The voting quorum for the next TRC update. For more information, see <xref target="quorum"/>.</t>
            </li>
            <li>
              <t>The validity period of the new TRC. For more information, see <xref target="validity"/>.</t>
            </li>
          </ul>
          <t><strong>Note:</strong> It is assumed that the voting ASes have agreed on the answers to the above questions in advance, before the signing ceremony.</t>
          <t>The ceremony administrator can now specify the TRC payload variables in the payload template file, and show the filled-in template on the monitor. When the voters have verified the data, the ceremony administrator can compute the DER encoding of the TRC data as well as the SHA256 sum of the TRC payload file. The ceremony administrator then distributes the TRC payload (via the data exchange device) to all voting representatives, who verify the payload's hash value. The voters do this by computing the hash value of the TRC payload on their machine and checking whether their value matches the one on the monitor.</t>
          <t>Phase 2 successfully concludes once every voting representative confirms that the contents of the TRC payload are correct.</t>
        </section>
        <section numbered="false" anchor="phase3">
          <name>Phase 3: TRC Signing</name>
          <t>In Phase 3, each voting representative attaches a signature created with each one of their private voting keys to the TRC (payload file). They do this on their own machine. The purpose of signing a TRC that contains newly introduced public keys with the corresponding private keys is to prove the possession of the private keys.</t>
          <t>Phase 3 concludes after all voting representatives have cast their votes.</t>
        </section>
        <section numbered="false" anchor="phase4">
          <name> Phase 4: TRC Validation</name>
          <t>In Phase 4, all voting representatives share the signed TRC with the ceremony administrator. This happens again over the data exchange device, which goes from one voter to the next. Each voting representative copies the TRC payload signed with the voter's private keys from their own machine onto the data exchange device. The last voter returns the device to the ceremony administrator, who assembles the final TRC by aggregating the payload data with the votes (signatures) cast by the voting representatives.</t>
          <t>The signed TRC is validated by inspecting its contents on the monitor and verifying the signatures based on the exchanged certificates in Phase 1. The ceremony administrator then shares the signed TRC with all participants. Each of them must then inspect it once more, and verify it based on the certificates exchanged in Phase 1. At this point, the ceremony is completed. All participants have the signed TRC, and can use it to distribute the trust anchors for their ISD.</t>
        </section>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
brXESAjO7BItefyQJUbkdaslsgSe7T0cWJLbu0RLdN0Sb5/XLTEi2tsska2K
+qch5A9dRovhH0rLf9Csc1PQqCNLqKcGCTZF2Z8VWpqEI9HI5PXrs/rrHaR4
r27XG+RhgObEfwXTKJyJPj/i36WOmVP+0AAas1bKY/ezYs0jKkjEfruCijdI
KQhu+MEZHCbYmpOcffWm2NOA2R5zXMoYhTlJFkJprpzP19TQhGJ3sGg2Fcaj
qjZD0QZ9/R+3C46vV5PFOZVFSHV6MunDSXrPSU0bvkp9n36J8rY0bUxycs3r
X9uvHsjvykq+/uv/9f+GLz9MvfYokywv+HDvjMpnSCjewM2NX0XxFEE22zt9
k7mVvuTFP74An/UwyE0A80/wqBTJH6wMftyaOF/4A3/ebX8qP2OSnTvJCA5h
PhvdQbqIF8iY0z1ds/HwF/fWg8TBu51sl3crS/KT3Omtne1S32VoP8md3trZ
Lk8+Ncn2b+1sl0af3MnWb+1sl2WfmmT7t3a2S8JPTbL9W38n7EpTnfSnt0zS
9xaAi1Phqc/cmHpKFM2AABN5o0Jw3eWtnXdJmsSfHkVqqp3kLm/JJHvFYtXe
DLJtBvG/gWwzBFnEYUDfW707kYRsTc9OTrLtW72TvBNV5x1riltOkn6rfxLS
3zCHmv9FmGwxSfKtDTsByk1r4n+33Unqrb578o5ZOkH3s8SZ9L+VPJP+a9dJ
ob99kvT+Nt0T/cZX/HALvA3Ft5+kW8/iMxVvPmiSoKZGtgEc7+wk277Vt5Ot
Jtn2rZ13qW8+e/eu63Slod0kd3kLJnn3xcNs8lX26Fk2eZHdf4oX6F0vgZSz
+uzrd4++zCbPsmePsi/vZ0+fbHyrdyc9tEsLJ9zprd5J3pEyTFTokaFdt0yS
fgvB9fhh9uSL7Iuj7Ksvs8efy8ZjKiSTqKD+9bsvnmVPjrIvHuNbDx5vfGvD
TlB1wDXxvzGBvMtbBoWt9LE9P9nmrb+TIPH3Ebj9jd1UF6cPXNu81UNW0j+3
Ma2+t3YcWn7W+296kju8tUMXbO+x3KDP5d8v5N8vB9m7nknu8BZNEt2g1I1K
TLL9W7wTNNr1/zsey2WIdrL1W9GZfBZB97OtzuS2t6J70lHft7ont70V6fGb
Hw/1+O3fisoDxei/3XXovLUTLuTKQg8+v+qu2ny7xVs7Omu3iFP/55u/DT7n
8Q11CZ7s+Xzzt93SRUERqA4Eup/rt6mCUv0lpfpOsP9kO5Kw/e7vMnK3LtXm
zzdVtNKaVomiUNmGz2+tKJUqfyU4ZEtdZRs+Dz9OPhR8+CFYeWtJrX7M/NvB
Kq6/5dzOJiSYs1zVVp7qq+CjkMNQtEldY6ImpmtS/zjr5TCtO36FXoywu+4l
JUTNxFNNQcw2sFDiodX/YR0F0oizP8bQVXzRhmnSl7dsi8VYkuD7U683VB7r
C7vRPFeX5BoCyfTo0vfDdG3O92iqRYEFaLC7EAX9ABTbupxy+fMgA9y0fmmC
klnc4Bp7M7goQ/6Oe5Dkkg9gsm99Sil5nzT5NVUQyGShxPlMTdG21FBGa0zT
IL4d9YZ1IeBcqVgPoWpVLEdNta6nFKvITQcZXH9opvDPqq7a6o97l227ag7v
3bso28v12Rh2ec9/zb/eo5zqP/tE1sYsWKrE2BZR0qgAnocTqePZxT/n/F0S
RSfhv5J18CRvYNffYO/Z5lCAoVgmKSIeGEcOGFGi/1ldFudU+ZjTZaRzHY16
W3WoMFJL4UsYqoWBZCBOFpkXWJXOY4OMa26JvQVBvSQKf8/r2VxKgMXRwIhY
G4r/6ivna7h32L4KcF7TxOGr5KXiZDOLxlQg+J/gUY8SlzmmRI3Ldj0GWN87
OBgf3L//4B78z/17Bw/vPzwYDLPpnAI9vxg/SJUG1IPgWtR3w+ue+zZEJ2gA
HjoGwJvXp09ODFV6nWkH9UMfKmMz9VKpIZuyVIW8g9QlZQyaNR4oNwlznTDa
oIgYowjV4HstWdOv+cNDcY4oVppGwvindhcKiQZ6Ivb3Hcoq6JCK7F4d7EpR
lQe7hJPUyVBvFb85CSidoyBUE4xyQnEkKqZ1xn0UAPa7Vw93Kems+KlFU5LS
HEJnTiZdAhes6htXyADzzWDDDVWy4joqbtcTvPlsj9JKSNp5XHsaIIQrvkVB
5h6AWde2XpZwtv62hRHGdDBUTf+Cer4eTca0HmWubjEOLyjQ3zXaclQ4n19g
2bDLBe82WB9FGUZIsvmIjrS7qrbDo06jri0jjvXs6OnJxNT9cwuA+4/NwDD+
WMvbYczaoSv0je8M7nTOWBGRlijXhK/sa7h0+QJzxhsBk9Ks1xNdzLGDlL9k
mXYUVqGCcYCzJ9IA57KTF2vqbc0VOfeePh/4K0AZGly9EAuz8bn66mWdK7q3
bqQsHpzRYONhcBHzkSRS0zYVt7BHAvl0xvKMtGwL2JjUnHvx/Pt/pqpLuJS/
/tv//ePpN1+etFg97K//9v9g5MiaybdrcoodJ6gdDFW31CJ9CcroHsxeY3Md
kKq5SNJrv6/tThkm3bABbcxB2O7H23Yxli2ZDGY+dV91vmxmo7wZLWuhDBpS
Y2ih78XXUzxu62v2AYVvCRRcPpXKk4xYQJxhWHwpCQmceBRY8aT7A/FcWDT2
jKLEAD53pcG0HwKFYlhdIJO5I1mWNAKNIqImjno+fdkPHdl0s1SaPkwO9x6M
e9BIurvms2rVinBI+2+ECTBHTZ60veHVtVCFbc/5/zc3GPWDCIxUjDguXUq5
ZtikT5J8Qtr7gTdV5uV6b78tbo5BgPLUPK/rUs7S6J7dC4upaiJZ7W1z8FSQ
U++gsp8QBFyec+MCpUeZMqtGW5o4po41JhtTkYXrNG8gLQhCK7Ky3K7n7wZm
8PKiI5nDcsUfSYg5furgeYyJNW3Qr7Au1o2OL5mIxCip8jUSm80LNpcDfgGG
q1mWrga1o0sd1i2Qvesq9aD/Xsv0YqmV+AMy4wXXBC+hQ82tRqXl38x7AQvx
tweewBrUkhRrD5tUV9iwueHHRvd462S291ws1zWzkSQrFRFh4sYp066DKFf3
41qgXVlRE/G2fDpJTLqIS9eNhpyqHMsC7NTKdL0CbLZn7vMf/umrzx94RfO6
OIPt1cUYC2eNq/riHmY3zeBqNffyZvrTV/fwi5/gnYOvvvpyMIhMQrSoRXlx
qWU0OMhWKzqvfbWfF4yax6al7t6L46cNFwbjtSPb1qUCFXpdTGdNPkIaMTr5
bvLg8eevh/GHD7989JpzQaIvHh88eI3rYP31i8dfUrW2/f1jTR493N+nhbly
jWE1YHNItqQ63hGpKuoyjfko3MncOmAfO6dLxgJK/2JQrDmv1ksHZFydpAvT
Qvz0a2ogG4CX1OHnxzDPyxHAM9vD3785fnly8OXno0dDZzV4Oj4YPxg/HGR7
SEtmqFBOV/BCfWCA+giNAgM/IJzFLQM+CgeEFzYO+PjBwS0DPg4HhBdSAxJw
ENm8dkkd7ARCnWrkOscDmAP+Dy+yGU+ATY3tVnUpecGXcPP+Uji+RiHj1HA9
riev9Sn5TLg4EB0Lf0BfA/7i8XDuZy5npX3dMLep8zSA0j+NB7Hxabgc/mmE
sn06viQbkFVML0Ev95e88pe8JLyZNIUn1Sob3Uqn+UEpHReKVCHlu0WbVbOR
FuHusKHAxqWH/4gxdpgyYaJQdQML+IkLfTixlKojqC4n9lm0crsHhpugSTKT
1Qq3VwW51aL7PmArlEMq1SM+iV/NJu6lt14CVZhHz5oJvGTnLblUNp6SbV3H
QG8Qz5IGceYiflwS92H1r0tYSTsq89dDwxEOKTXEfefXfoqvHR7+JnsL35Hh
HFY4mq5Wb0qMh6QXMCDy4P3rnR3OOHytT752oDIFyGTdzLOMdQpZ1qDjQrj9
ldC5sMlDUEpP3Mnziast/WzZFjWQGkAlKY386ePHDx88+tQDhDeNIHjx5H88
OzrNjp8+e356/M3xs1fZ24PsYfZ5dpA9gv+nFxEMp4G1lOrMUbfOuXT1EzdD
dECslcnF6sUPomfkXCF1DpgaNt9zeyRs57n5MuagNpbYYJavP81rZRaPWTIX
PLCd/+S6fFPew2XC67DUkXud+pecBpOnFyti4IxIfIEmOpCXfMbRZZF1Vtfo
2LYaPHUn5+2xeIMV7EG7712HgQU1hrF15XHaJ9+Sx5dr1+/dH2YPfg3E4+uH
D0YHmCG2+nqgyCQz0Yjj7Pu8vqDuKjqgFrCk2mc6CA+BNIw/efSlDjvMuL7E
weejs7LFiltzUPoFNNgxAfWHesQdcC+Ln9igTn0tkf/Mi5z++EtRV6AVLEqE
x2H2+uDw/uH91zjh63P4OXT/85ru2zPuY40MCVYOj9yHxw8PDu4Tu0dAv0bO
34Qwfn0wMk+ObyNrasUQBMDm2VMWtqeFgj3BbBIuC1EYAVOojOUwIeYrQ4Nn
IgU7riNxnOIWqI0xRwOZsMZKblgbCz1RN65OQ2Axo7YwblYSmcNpXUE+ZeuC
3B5WlMQ2nw+5IxA/VLbs8qUetAiogDz2VerCaWyZNzvlBrajBVy6h6B1F555
zfEtKYlUYSHJ30G8G1p/tPJ0pW7PEuot+/TZsRfIEE8jtyDZ/lSXClDD6bYa
B+DE+f51arEPWzeP/X8NK3V39B5mewf37z24f/D5gE7DuxLZFch/ftWpn23c
KKGzLXJQBT5Z7YExyl5rM5gbtBZ5T4YxeXS/AJH0R6xI8FosDr+1f2P1j6lx
Snf4miutHVTVDgUrAiHbk7zM5nekhbf6Vu9RTshL33P+4CPxKQgesUcsHn5b
uyYsThOZbLX3jxFOCb9LXw51m/V1XNQxNh4Mf6bT+isYBgfaGmKucQCX1TeW
YISFlDULYcko96aDUG4ydCgcMznsfH5iHahUZVLsT97aFg0dit98bNgSGAkc
moajdd6+5665Iq07YFRHR3VAIHfO22yY6X//lgOlxpl8yvOORiMV3lqp0ub1
QHiQmogvgOMAyIZ93guAEHLJNRsxSuPsVq2ImpaJb2GK3eVASDKL2qBRubFl
5fYKsilFOf3k+dMED6dHTPk6RwqS1MoTAmA98sQIkGQE8jlMrEpV+t0kcQjY
JuuwUmwz55r3U0q/8zhPnnoTXsZafsGy0xC96OnaTcSCeV6tDhiEwbBVA8ey
xZiZK/mVk+mYjSySmU/lsDsVmd5Q02+zMm18rp35tqVkt4DyVjr24OPQsQf/
majrcNIxygAPEf/W+LFFQf9oL0/CCBGy5dLLrgR7pyR8JJPE1v3bzzCxllvP
7eHHObeHasrz1GzDqrQniQufo8OFFzxLsBcxGjjRTRWrXVK5tKWVkWYl6LP5
3CXGvWYbg5UResNH5V1jbeR4wOACrvKbeZXPKC4Hv4FjP6oWoIchCsJsILqL
j4fZ57PltFxdFnXqa7iu+abv4fXJBTDsnu+I7cBa77LHI+vjoHpw4fYCiQi3
+Op7mSKYvZBVY+fQzq6Knu9ihnx8Hopgf/23/9Vs7iRB92GL08n2uojg0WlA
LkDtbOcQEsVFSp4/y6dvNkuOHRuo1o+cYc3GM3SGcWVNRW3RyTQUT12NtEtj
7NI2CreR5kFPDX/fz2874k4V2DusFk10cDZCIYf9V7px/dPQ5882g10l1Lth
vVJAJfnidfakquZwe43Mp70G/Nh6PBLMd/rqx2fsggc6kq/n1PTmm8n3J89C
g2KMUyHhl2X6NQ776LIZQXZJ7qGgBx29Wa8qjip2r8rYgSgqTYQ3xLCw8ZZU
0mhJLixfS2O70Dfyl5HsGthgtyXIftwNjRqDgPWmE8NKIb5YLM6G1ZNB2f68
40zCLPqQ8oA6n1IeRvCJmEH2koXEXU3C0YafLPV18sPEp+nn4mdgBfvOpH64
n9hY4iedxpNOqLrtB1eQlk24AC0MElvosp4PE5/CJ5N/th/sna1dR1y1RQ14
EV3aa3dioyHw3uwdDBIfUgEGG9HLLx8nxLmQUG0g/J1ZFGSOk3bhHi+h78PE
xrZZbTB570Jt1bFHmsejR22GH4UZLenrqhXKnO8lQezSlbZ7Kte6+mSnl50i
yx8ynvN1WntVIJbDF6OkaB68YRiVo48mVHTNulu/bH53aTw9vfDanyluPxpr
YxLHJLww3CX5zzSaBKuMRngSR6mdhOapB95lT/oDS9YgG7xZjaiZaY2901/7
gKrYChc1a01lqvA4UY/usZ9nOi/h858/D4/TPw+GeJ20oEYDFLefCb8O+ioh
0GGkBkdCBO5mlGw6D28fR2uUNeb3+bAbXT9eYIzrkb+YQWpMjx6ZcMrXmv8T
2Z9sfk9vWXMAy3o1xMtrvAepZlAbOmIMt+gfQm402zQ9Jeh66RXf1S5Bkaiy
+VKK+EMUcotUKsllisQk35C12zH1owhOPaITf5ESn7pPxeKUfv7zhaoNktFt
IlPf9x9H1NogL90mSN0939o8g9JED7aJDJaWtmj8WLyK5KqeF3sHjNfVId/R
9qzE4UqQbviiM79+p3bu2Bi8NpmevIxRg2XZE1r86fcn8EhDulPfCsymDK/4
z9wUL+NjbSpgTN1Nddd9O2anX+wdMMKgiBV1h7ccqTNmTxQ/DgfcyBUskv9N
VHs+jHncXadAKTVd6fqwyynvvn4joT9WCd3Qgg8R0iXmLEoinnjm/Vbnd1F+
d5cJrDDgbC4u2iLXVsscZPkqYvcUQWWnvUtQ2ZsVVqx6+B7dh/0tu8Ip5LE7
z/KAZtnU3imYx4sod57plyA5HyQnalwnzCDQ5ejbEedVWFWu+1ZKnwNIo5jY
NdqJhZXcu9wzGHMrt1XkNkz+87W5R9Z5v2mbPbnZ5sb2hYpMJzaeUAnOh8AL
NKKbgky4QYxslGuN5lnSqrDtxffF0m8oWEc30Jasqm4XwmTD5WfS5lanQSdt
eJ80i1DCrOAQ4zLm5P3Fvbm4ybLp9IOK1X4KMsIKKWMs3bsust37u2GTNR4E
x6V9UHRYX5O2YYYGs2WnxPpYrUTBhtl1zppoLZ9k83JRthrWoplG82J50V52
o+jKsKmxq3uxBYqrbhTXhLi7gvSR7chO1vhAnahPG/LffwytaLMm86Gq0bbf
8zO3q0hG4LrLFx/pe3oGpd2N9O92pWmj8gNC63cvfvz+qcrZ8VO3fe8WifTo
tv0mKOLGL9yLtxiJN5FdcoB9lCFwlwna3QdQU2XjYHfoxky5AZMvASHFQtK3
vfgh+8rPKK7j575t5PnPVZ6PcfVDLe9HUUgPN2q7nYWgZXznk34bXbAEEK06
/djfR3WGrP2qXI5mxQqbVgWjCLuIGhj5OfdOXx2B7FkCsd+L+8APJNeZqnZp
ytGqmpfTm4Tbmrsmck7QFLMpKHGgbPiIyCdcADtels3Cybq8rHw5vaxqYW3A
mGEYkhI0y5dzVJNd3jFQB5uXl5S6ahsjEkja4qLGdiam251EHS3P65z7fWOS
JvNY6clA+3VtIEl84bIfEqeVu4QxONxiUS1vNDBg6fdLmVZ1tb64VJc+7YqP
L35ddDRfV6Few75/5Q5DHxyE6VggjdKD7HGhZfehkEjlt6BB2cjmqNXffC5o
BrD4AwV93ynIulNOrWtUDxALYywcAAjLUD7UekQU9XcU5IX+wA6n7IRVgb2j
H04G4vf4/DF2oCmWV8W8WunxwmyfRlGFZpOowVC1KGkn23bLViSs5RwteLYu
pf8iPZKU5bhWnyJ+3LWOyvgpihSJBrC2ITgFnVZz7PnpXBqKU60KcNTVMdeu
4UCh5li/a5c1512eJvaB5PDqNU1BVwjoCRX8EAOZOxPqCpqw/UeFE4BWX5UV
jMN9v1khpkheY/ynI2+89is1TRLOgP4qKpGPoqFSKvgvTcKWDeoX78tNhH3k
B0M3f9oJsU1j4KTDJEoh6KHevr5akngj/JAeCvNrHCJIsTWvADeiENucTXxQ
46o402Uspf+mPsWLCNTpj6NTvOmff3l/y5v+6NHnXw5EFxe/73/8O054ShUo
qUthm7Oti0gR/fE+zlNw9SrhVeTKcA9JDz5mgnyoyAqUsqybtkug2y71DjhJ
6arWYMWT3IeHY4E9vips86Hr49RQIdtBRimqyU/gLawopm/jA0XpFHOzEkoW
IvXfLTw/b9FzqrSYescY1gsfjri9EnJfeoZzld1kvpM2cDEOsT/TrCfmT75E
6K/ca+wrpPFRUvuprJB7T5kYN6CZgro0p0B9rAdKKJ5qqKsDYDA1GcwdZfp9
ccZ9VEfZjzQ3V0TC4N9wDdpMFj8gVLxxxQQ4aZwoqMDT94cnIHQ6su/sTFxV
0USUKSMcIRO17xFUSrWclnOMiBh9SnrM0OWuRVWk/OnpF3h0Ex2QGMuswGPi
ikzqiuB0Iq7cdA7n0GhXdpiv0xcONjAhOgJQXaKAhTCQGXIZmAl33nb83R43
ApuRq/nqAyANFs8RcnLXaiXoswK5CVdyJadKSZeraUs4aln6BUVhCmj3EgV1
6AFucaQglMsm7Mcb6OlRBOfzyiTaYac7QifZqIBDemhTPSKGKuIMyFdIBkx3
Ouwt7C0bEgWMS6AezXzT7lly4rvR1XRlCSHnNyODyWEpVEX4MV2BYu7rk9IC
Ye6lvw9BciRzAldDxCPy+kyzubTz3Ye3MNv+rV9amP3SwuyXFmbbYNcvLczu
8NYvLczu9NYvLcx+aWHWefyXFmapSX5pYbb9W7+0MPulhdntP7+0MPulhdl/
+RZmf6sz+Xvck7+LHh+3E3ro2gmJkUssF/PivB1dcq37WRHbVr1dI3qtpiqo
rvSHs+J1rCbauiiyv2p7HzEff0OG7a18Vt4ObIsZ4eNsb6G3vS2XnYTksGn8
Cvz3KQcDmZAvK32DltLnAzFWYxebpvZ1Gp0XxF5UTZXiTZ9ML4tFzpZyMdh3
LOXoDMvO5tX0jbFg+Z4rbMUMnQjs26VzES9AQxMNDsWOlJGF5qV8SRGC2cmz
f/zx2fOjZ9lbbTl25Ywg8DCfj9hFhvpI6UwY8MjxU/e5s2U6+8NwR78ztkD4
6/j56bNvn71yby4rMk+IdeLJixffP5s8z54++2by4/enHPvgZ6ksd3AbePGN
jprtnRz/yzNQsMbjB48fDwZ+EXyQaqBwj8uD/rlpVReR3cfOMzl57lajxWVy
FB/5nb5HZ11Ljy8Gr4u+Px4f3H/wyK562uWKdgobifV+ZydxcHLWut+32dXB
3v2BfxhNUj3YUJ5YcxXeK/3GNl8JYfnD5J8G7jG8dvpQ9zFZA96icI34wOeP
Hz98PKAHvD2rZ53Lqn1SnKO9LjstF4VBrHZCfhj+XOaDU0nM9+DLg0dfPPrq
i8+/OLgPcw/41nD4p784pkpaUJ5VC8twrQsfNOFuq/FXJmIrzqVrmhaHyb5Z
12iiR2M41UGwFEYLb3djJ72H2oZcGGolVWd8dYZpPsf6Or5OKVa7yKQDEbqJ
zgoNFSi9m56rgQAcxwdRmTpXB5FCFrK9p89eDcjZ+NX2zsYvHtjKCd1oflrO
iIE3CIkrt/SKPLCho9SEFDdAHzHdsNGS7Aknqgb4/8e/+w5LNIugRth2KZor
6rpknLkB8e5WndMXoxI72IXJrqh8qiWG335Szlx+gRbTjwJwpauRCUk3nmeJ
jfHfkcdJXnE4X52Tw9aV/Mz2XgONCKp2wPfEbN0DngaE1T3gBLAsKHIyIib+
jSZdpQvPmnyNUiPUhRVGHZ+4NQhuZ3/fL3V/34ePLV1zKPHAUAx3g2NwqVHK
b/z8EV6AR/e/epTtcfVQ7zcmFOdHK1ecCiZTPD1ertYtNrzAfweuEOv+voEN
rEhbLApqtljvSivVuqgE8SDGHSE1zCh8KfTusTAS+MxrOyjW0SSnoveQi98y
/FhijSXxM/J+S+1+LEhaOxjTJPh2whHuoRGcPMDD1aVtgq3rtm+mWOFrWq2X
tOPUYiSwRyOMmOaxl9b7/i2CIsD+dQ0vS8R2iIx0C0J52E6WjDiwL0yWiTOw
/YDC6eDtA46tC9aIH4+z32Np2YICJDwuDBOLNmlR3DORPfnVUmvgnOfTcl5y
yAZf8flNwMJiPzAXvpt6rzBHanVQkkrShEEPGBRPw+Q1VkYh56+NqMAwhzXQ
lhl53qt6hqhbMVrL41yvE2vRpO5AEYOKgkY1xCnooepDXE0EiAlQ6UBSrqBx
khNrvEYuTuqPdoKj4mfVAj5clI34imVqjjkqG8FFV+Z3f5+SdkLJv6EsIFcz
rpwDWWprOigM2IgKLILo5km4hpd1do0LIEL4xaN9Bhi2CUCfNPevo6O8XAMv
HNVFPqOUAJCcRCjgW/Pkp59U7zPQZjXrBL7rgI7SBDhChGWxd7Sw0P+ZURYh
tSLKtv4BfT3UetO68F0UZ/7B8GqJRZK1AdC+eDR6cv9gdHL/wK34zj84sPrg
ugM/cANjLa40DTI3ebz1wA9/3sDeLB4P/OjnDXxqqIMOvL//5P7j/X0Y/DEN
PAlpiE2xooLQQShjSJ/dJ8H9bhLL3L3/aDdxxWHO9dwzmO0v94bzeAw7+/xv
cdA48Bc/b+AJEvcqI71021JHt/7Y0Pwv1ArF9EppVUyofDYtCtsu+koFXP1E
xdw4Pmt2e5M/wREOgiIe579G/VBCvznc18WFudi3XRp2l8PNpEGYUz2l3Kyq
nK9TBb7iJVtaThXlaYz1CtMSzqhitgb24+ooCh6GCJeZ23bbHCIVhOH+beLI
ZEkCv8SCcCKeVoZvQBNtSSzNl35PqQEM4Gmlt1UX8SGnWmOkA+g47NupMxRk
NnMhxSaGTbVH6j38QbHxY6qpHLZKYYGdC6b7gN641LjvX0bdKsrCNcLu7Myo
lkEXMQqGnLBO29yhA+WGcq2mGj8NSsijvQ13v4KfgwcP4b/HXz3+6l92e/pW
ssggnefrTiFYasuBRoQ1IjuHxClOWc03CC5UCkEfKnlIhx8GptNiOyIQBUQS
QnMo5Flh4z4F38kIu2vDI3clwyYImSQBt9FoxrPiolwupQ/GBgomYq3gec9D
8YIpvB8hizjRxgvB5rervMFKyvK1eZ+qfRokYUKEKc359BJl9qqWl0L1IFwu
zXGGvUSctB/QKNwLKDYYJsvteIECLhtxKbB4iKMVy9QWP02E0faigGUSARQo
j8lL/XD7K4TaXmxcGHjQmyYxiZlIqnaKjqpk2BFknG0/gI2rNuoLfsxDYZq1
K/A5r7BPwRLzkZBgSOoBHM35OeZ0oE2Ba1YHvV2UHzvdy6uHzHPqNZmtR+dY
lr4CgAlVKF1vGJceHcCULIgVU34g19UiTrGI82O4yx6hG16J80r09bAAM74F
V/C8aKfUZUzjc9VoRlIbhihjY25PMqyXwVc3ffsJcGz8nCRNJR7pZ7sFDTqq
Liz5rJyBJq3dvAk4v+eI767CLBmOjAtHk+eS4ooJdBeqWprI+E5cvClbT9Pb
Mrk8CKNXuB+eTk6P710Vqe2q93X1dekwNk5CyjXZrFZSv0/cY1gMtnGZrN0q
w0gJ+PJTH5rEovUQwjoDYiyJTsG3+BQA+2SKGsGFhY7xEtaEYkMy3OntEmsr
zeHPRlc+zNbLOWZatZjQQBzV3y4s9Npg9SBpwFaXzRtOj0F+arONFvkbzuEI
Fr7Q4wsFuOAhYyHzlidkwmR9uu3QkFy0uu/QqBcg514K6QZD7f3rZUHFomBC
D23h8zPfBDdKzCMXSpBMZjkX9lhr2iKfDSNQuam0GE6Q6aLpK4mMl9haWDb6
sCMVIGOhj9EoHpXPZtLvog59oUwpwbeMz1RkWsW3lC+5d+s0UPFTVtLNNsmt
wSJIdlz2jI7iBXMwTKx2qRl2/tehOJyUdziZiHyvrjiYZfc9ha6rjdN1ywN6
nD+2zHMYbNp3KQLBhLtw7zwjoyhcitrVBe08rhyY7Z1cDlW8bIhUoKtJFx1Y
NTuZqVVr2UzXjQjWuFZJa+iIL535DB5QTWuQ+duK1+cYLeZOIvXF2bmPhByh
uWDOyM32ZMx890fVmRUIC07YxgXTlw0ei1xyuox0Wt3pnHomX/0ru8tBDqjg
ss3bEs2SfK3JUEjCg7vdlJQjHjQupeLqV3fmQhKrOUnXJMFcldWcsvCRdnJR
vYUwJz61JVJeleID15xx7fuLy2s3N9c80xUHvfDn7NWCCFSBP5RvERoAaoS0
BwZ5GkK4XRDhFa0Xy85fo96g545p2MuLuetYTmfN9i3iDoscc3Eludbnwrlt
a6SC3zJ+ohv23yb6iZpeey77VfNdtAswG6ylKnpt3okuk2sRb3A/fKExZeap
Vo0fiig4CvzIbZZRI7p4D9riEzb/qriqiInCiUwaTYympB1MRl035ASskOFX
bwq/w4a+ZCxi+/fkBDN4F9WVYp4m85pVulto99jtV9hdL60hb3xDArMGQCK7
hnw261+A807dbfpYzrJQyxubTh4C5x6uDZel8pDcR2R1e6bUThovO2ExHkHx
K0XQxGNbYWrwXgplJ90HOPcUuwDo8xJPRkxaNulSS7012MZ6AfltuGKk52GJ
tXCxf/Jf0WpF5V04OTsA2ihj7hUP5L3V7i5RTFsR9OpOoxxd2c6AW9/dnjc/
+BL3nbNDmd7rHB5k370O1/u3veD9e4lvenJVH//KbwDu1ne/B4A/jwiYgDd/
/c2HSgWC5zpy9Y+n34y+dIFH0jaW7mwYasMXn+MKUkOGNaREcOTHbWSeCez0
XvTsGTDpsrlMFTdJzYVFgrWJmZWHUfQjeXMOmvnaVtH/JBaSHT+HTwVQIlgw
iVnGLb6pQo8cI1oo9o4mjQ2b1YakPg25+Al10hK1Vm/I+bSJ9C6iqsEmvJVc
TBwajyYLxLV1a2ekVY+ODds1bhIRJvF0Gatbpnldt2spEC0WYDbVEDSXTBVK
lNU0sjmsYEGWdVujoKt2DemJ/hrrYjbNMfUhBhUJkUFNKgnGW1apAiVVavx0
3eKUlLblEQWVToPlYawzFgDck1XAenBdg7A/uw7dU3e721yY+vhxFUdb0Wlj
kX1XQrdTPjeoqiuFd8P2w5s9TJ1OFmoFTrls1NtSzWe+NmMC/ba8CoRuHRTe
QgAP7kDIuO1It8jfKVwQKqttlu9lUcTeKi/r9NYjJRxjCZVCmQ7MvgKcrmOr
htRDJwLGok4Q4GW+N9DeY39PtzSICad0FUDKGYf0seTW2aA42mLvDF1kbl4d
CLhJL07ZqLfaducy3mafX8GPdt0g3e1XNUm2xgkb3uR4/KFjNMavfYeJxYSP
mGBPoDupGRrh+jJRlm8ooW/28wRaxBgWXVPCdnc12anUlvWHUUWu4hvaFX79
G45PNAJSyuo3yCT4y5yumAy6pWkQSCnrxR7iIr81GPi64AssAqYmhwj0HvH3
3fr2k2bJDvGWhfRQhF4wbOg08l8ACLK6jwACk9fksqW1aN3bMGj9vStn9Pcu
t0h8hMidcJcBu0uoGRfQJWkBzJXDeO1hM+4lhfjnq2btLHU2aF7Cam6v4BdH
W5iCfjI7y3PR4EKwYQR5YET5Clrch+lEum3SY98viaYZxpvR6oMw9usjHvAY
zuO1FvbpG/hhNLBtQkBPdgzirvodA8QWdtMNbgAgiyWu6ftD2ke8O+2YG0lN
lJWhHariIA+2flTIos7LeST6mpZcNMiQNlOtdMXRnjj9g5RqsyommM8MzANA
Kw0+xCwdETIKeQJLzemVj7pO7paMBrtj/54p99TaYeIh8Munz16NVMG0Ogib
pi/F53UGGzwvJUKBYUOZHPAItiK9zusZOrQWK4Amdc5Fm/jL3x6dZJ98IajD
+mqIlVhlvnN2AKQTQu+nsK00XFLCo/I+zO4UFZeBYVjmqqrmcYe3wPWH6tUc
44BvEvL7BpE18hp92vg2r4ivZBRzzp6BOao4hSYqfbx7sOtj9s6KKZXnj1qs
OQwIKAG+bYmVfoc3km//rCoaoxXfUBmxlKieOg2zL3+a8VkO/GHWtsUr0OYy
OFBaMCqz9KhNxJmi1XKZkWdXYfOaW9xPlrOgo72drPdG/Xxw98y+YQ8pUMV0
0+JEPr9AQ8blIoGDzoE00YfirRjd3Q0E3Hy9QmMY2y14R3vnnXYx3j3FJpiR
sflkx56WCybj4yE2AzMtmtasjVQKEG8X1mbyQRsMc92eoUgDQrd0DhCYh+am
NuSkxo+McTNLckSiWQ0DPjDoNGLDiAULiT9UspeYSCI860LHQ9pH0sv5OR43
+jVNDdoxJa2icczHEg3RO8+RLGJklBjDyikwcGWnU5iBDDFVxJ4KAYZhpodo
szjVGoJo/5JhynO6/FzJm9AE1FUhVvzg2U0rT4/39wG+OgjRdP+lf0kgYIMB
G51OL1EsKxU/gUQ3v3E+SFZAjSvWxTa0LQXbdQ/0UC2e2oKs4zhOibUECm/8
QwkAwGUQMIhxUPIu1ggflrBb7v5vEJhwYnkPLc8l4yWBBu9hLEsHYHwP3P2N
8+fMwRJroWQmnxAW52vZnXiTJ2sQPqMbYfMyB5QbSc7EhPN5XwIP51vfbSTC
820Ks9PI07LbV75ji3Sy1KayyFy4lp0aamq2FdK1XzqdhwtYi2P/nEk7iPVz
ft1Ekdr9fWDd+/sBBlK4CMYdnK0xPHvGgQt29xR3JxWUzSKbAoaB7+c33hUU
LsUnD8izpH2l4i3IsDnrt+10gSiGlkqFsOTsQ0dXQVIXKrioZppA0NnkGB1S
1C2Bl0VrobuXwBvv0mOyQ5nkeVQfPnH2CitbR1b2qP2CXL1zk+YmYyIZouOQ
5DadNkhfR5E1Smm40YgJkIxmcc69GsypoYC/skcvRy9/ezyUgPK4AIj2Nfbd
LhRsGkWLCeJkPXDRIbzKBVrUSqT0buSgOLiXs5u8DPTBMVs/QeQM1D0dkOKG
yqbh/QndoDrvQwUwZWkg/t/wsoFe1rxbEBwuyiWGHOl5yA6dmUCH1uk44qwN
YiWban7FQZRRGXktOH+OolNftv6j8YNs90RuMCL471xmiTbXeEnAFwW32XUJ
/liz3eWhjKarkZ7PgNtreFtLofiJa+iQSa1Irk+91z5LBqsJlhR5LP0AnOSR
LqdAKlRUNZ/i4tEHFsg5p8lXqSPlmuwt27XaxnA4CWNthIGk5lPriy05bSOE
z3u2ci2pDC4BKF+jxLu8uH0qyTlf+kLMLMXcVOvsGu8+xSEX0zcmYpoZhZez
MZk2iKEKD8hLyjg8HYm6rZOgDdTsVVOsZ9VodQN0cylldQqgQVJcmT+naiEg
hcmkf6Jh/yT2sz1An+Ywe1pO2z/swWaH8P+DIaLIH4cBSP6EIDhEfjPIRtjD
sv0DVjVDbv7HQy1Iku3u7rrfJ/VF47/BH57rlBwetHukMoucQwP3gpy+oc1x
HKhALBUmLDseBzMkVnzah76uBE32qoCTWkaL5WOiC6MV3LoVSaRLXWCSHCeh
8QkoXEAiLuEiIiOxGZySFNLY8MWOe8UM5EoiiP8hwFy6Fe5hnOZPyzr7TXbg
PiMCWU8JreFAxhQB3uwNwu3jdaqn43I21jG+dqMRM4cvdYljIKh/ksX8+jeJ
QwhGDtcVTrITw8sBRAEXZn66yEzGBwtVsimb4WJR5Q5Q5DlvgeMfymb2x62B
+d9+ozDoAgfJZLlcFz1D+NV8bVb288/E7jKeyp8LsM8Zi1m/4W3vuYeGuqXB
H+05SupMB77aYbAkpTIlTg7NKK1pQcg6iVzOnrsH8MLB3XI9YNQrsdeBSXRq
NZEFnGdvkNhQX5YZa96RyCqOtpyD7sxg2LdRmVM/JYHdJHZijvgz8z0t7E+y
sF/fdvSyS5GEI+7gBjUAsMod48D4AkDk8WB04DFhEB+IfRvZmv8z3BfXVfn4
q9/yhexdzyNmwTCq463phwE4hxkV+PsZLPNQunCQLuLTNpNlRZvLnIUd0NGw
oxjlfehYfw82xyULfyOXRj9FUomjCq0c2xk6lHIpSxhTp7s/mciT8TTfklrS
Msb5bEbl4gfx6dPXUgHN+zW5nAd2+WE19b3UYwp6v4QhZ1LQLCy9qA/vNab1
XFCyxOZrJ5t8htXSrAFdxnEmVxZUjb8z1hQ5T845+k23D6fup+qIsYeLT3+1
4gwjetc354ERYfGY6i3imfNkWuNpnAPFZitMluQpEIxM0EkAxuYlaiXAcDRJ
rCSa6hbS20/HGqLCCKgntrNJCMwh+Zw1j0MuA9rS6iYo70PSPieI51GOiC5Z
coUFoq6uR54KwgwNIGJD3BPtcKAqKFk5Eo6sIQHBashk2ACqL5kw02qNuSwY
74EaCqMRJtLRXwR2ibQWy7dJP5YNeIP8kWRsArifF9chzXn7CaPYaFlcv6ea
AK16KH/qRIQPKW8/dEI12T6NAFvZd3pc9ERghu0xo6YzzVzLY8weLuq7jBTc
FRMyeqsl17bU4ZKr+bLTDU8f3udWP4CS+0QEnEzLX3SDgPbHSRgC+B34WFRC
C+L+fmpON6UzFEZxRpQ0MP8ww3VgzOIYMrQ5+1uKQZS9YTO+9JY4BrSdI6vT
XhP0frwZesTIG9qs68K4sOF+XVL8r4SIymxiXMsv6qIw2V3iQG2MsVXyjpfV
teKNvxNS/ekVUbFR9gI2elUW1522cEQjUD+hdp6VPOZKn5iucUpFTDHNiBRr
NCMHNYfU1yCd8U5be5wryOWiKzhmj9uRqyHQGLqKmSVctEwyo+KKEBDvuDs2
fGxLYUU/7zKtyvujuRaj7Mel5oE/09ZSvc++Ul/GkXCz5IOH2Qu6ZHwkAJbv
MBLOLiWqrdVXaPoOVbW2fvYDKnaNuGjXE+SJWh5p8vypKV2lIss7gJGP5DzM
pGwlRgXb+pSIAPhkKqv9XThAGPLaU3LvAN+yTrHD7LkLPuPkwj1t1ZP95mtV
zbnmlXOpdWLeevxhtkqUl9do7/+oaZy9g+LWbdOrnvQifix4oi8DhR99Xo97
aGjjXAr/x6bE6FTQCQ99wpLIxkDLjaEr7zrHIwiAYi0fDxEUEq5cIvfmoME0
k+UF/4CDCbHV3FKhGHrVN9B952tJjG2iBuK9BJMaV2dn5ki16Z0vqg4XYNqx
5e8+voa88yigNUY0VTmt1M6dUXULatoSX5+tDuiW0Nb0EQUly77UkmUvInZk
RW8uTBlIqcSKXCGz//j3byUszvLCmAEy+0okDRiGNSSnO7ocTFSbWYuLBOgh
bN1gdl/SieuEhFFaGuFOQ4akrmeodL1RHSJFUDevwJZlMWtJpNnHAiWNSxjh
k7BSBRm2lLf6KzSQeHWxzusctmxjZOxq7EIkUl7rC6wxQKKlSQhgP3tBm7NY
OPrBN0fmqgsM12XElboCvjvlMKU9HVr9gQzMJVhoPPc4uTh/5ZpoXlt0YUMw
i9Vb3FXtck4M067NpyZCUsyaGFJbjDARJjfIeBoUGyZhWhtqu+7aYRLvKZWd
XCCurlXqc3WLZVqmoTRQkorGyWpiPUjLwv0ysBISOEI8Nyfs+4G5Mnovisg+
nBZFMbF14Y0g4aGb0MSwdMItOBQE+6rQkohYjbOj3VuJzO3u6/3ZtW4cWzRM
7y/lQG64wEaBSaQANp2cvZT04pJzyjolXJkVNtvISVsF+yK5QCLDqTgbZBVr
WdNohU0KbYoaRFYNMThVSTOdZJD4pLNbxakhl4GnAjvbkQpFb1PPZwuprYdW
B4BM4EACgp2lqFBn1X+p9OSV9lVdXuF4b4ob8n2TGSlef2oBPiPOnkK0D2Ig
x1rShl3PCZLJYZzeJDgk4wlTc+UrGM2HXHCjeB1nMt5+gK6P84ajzDdO+gHR
756rpORkqZJu4HMXQdkGmXYrwu10z6MjV9/pNDbL0nc/DzfebSeyceKfdyYa
khTyehs7kp9VV2RCDq3dpGwQaFxloPhmpisDOeH1g0WhsPGVmntC0ahuhuIA
o5geVysuXUMwcZydtOigDc05R9aLjEn21G5UZj6bFSmT27Dfpu/WSVxWoMxV
VLSYRqQKmT4BXNWNBW+pyJdTBLCXNxwBjMSuRiygHYxmqynWkoNnd3EK8iIA
iTwfwX8Y6wkTgLS0q3kky4IEeFNTwwVm8Hm5+h5mOSyw4/fMv9kpoqU5lTbj
BJ2Q5KiapKml5lwNVH+YKMZ6ZXOfFwUXEIGPAOPQoKmF8XYRs/liIDbtsotl
hmwFKYk5g4YRrEVEX83zaSEeKyqkSF/RHciTG0s79Kwzr5GRZuWVRj6kX1KA
09kCTKyXarqu0Yg9nVNNRk2h9EkEmvYvvRaGjEBvimIVTIh8k6sFgSYHFxBU
uPUcCxVjw7WAoNGj11qLtWkrvKDV+Tm9RU5NLPkNH+cX2ojjOr8JpSPDE3ik
OXqdyhZrXDDdpvNZt1jtsMDcqlLrZRIM6AYS+lMwMi95wNqIFm/0WuZSZ9Gc
i0W+RGUuV+t35e7SZeG2QpjLhmTueONSNwh45KFMHxctUcBI2pA444xTs9HN
cSnHMOVFrCi/MyEPOzt97j8Ga68DMNRp2OlHVpQjilf0+S5OLpZzEb2qwy0I
9nLRC5KUj4LIR2OxoQLKXYosIvuxzRyIZABx1I8kqjLIyjEpDE62SyZ/KFfw
lbhFCljOUuN74SCvvWCwqb5JaiPxTR9uM8UmZiWSJ+EOTtN0RjRAyesi3iq6
PJs1osN8jSX2oqc164Z72ljGp6lldOjiLRb3FRDqC9YnuYlEV3D3xZrr4s+C
KYTjrvWIZpBTmHSBdauWNxLGPJU/tSIQ6g5cJNsVRHXhF0PlX7gCU/J0mG5a
hE+5QbzxIiyUgewDGSNlJHa7Ibm8XE5QkkLqfi6l1rqN0UjOPSUEyJR2/GUh
kgWxnVzCZShEIxrZJazTQaEbczZag9TB6uIkVGn0JUnN4V5eTKrOHWbWmjel
1hkXuMKh0Msgm6S9rLEIN+ZqCNzGZLJ2tqBrqQjNkTJTUkVpo1iA5YyMlvnS
WwjFT29K4uSS3oBUeYSoKWTVlQMAtCJDLg/rUGdgwlhyn7UScnqlKAFIHWaF
3ayopjD3yADRZjmlAqFe4tAnVerw4UHaz+gyXxXJGTvVretiWi0WaAOfaQpM
7jIRYH4CgK00zAsPIsLxmwmWl5+VP/HNy54Wq3nl2l6BKvzyt8dAvU5si76G
apfhc5iMsHpTvo+aDIpzGD+44kT48HU2v+kkPNTC2PK77WiZKvjFEXfTcKwn
clV3dp64yCsqcRjUfmADEdC2ZHlkRkkyfIXoqPcYLuQI7YNB/eZE47iRVl73
2T8lIOQ1x5+TkEXkeBNEXFefIDFLooEEie65KLOw+YfD7XE3Wu2/UohaBAAy
Et4eRUbpdBaFwzLEXfHoadlMK+INgLPy+wjg5IL2XhmpqCyC7iAtCJw5OdQK
k9mYX+XlnPXY5Ls6i92y4hTCNIgEjkq7RIY8EKGlVF9yUNJ7FtxqEAC/KJdU
Aoyqe6+xQmW3Qp+xiJuawo5XAagbFO8oXfiVf0Las/2cXLMPTiXblDOm1Tsc
wQn36Og/C4IKREkh9EI24B7X+Zi7IpAkzxgYkTS8/6TIAdXxoZdMaX3bOhxQ
r77t5KdHe+ZedbF6z2ySob4A8gZCsXWmLc37xkF8YmFkjgjyFdUUim9c5qDS
B+01TqXWDjeWDBpciPYtFwaexz9AFgESWsq91S4BdYT6fGvrIhAmOntO4zGG
wouNxRnQfKHXJYhE6MOyb5yTT3CBmc6kG7vZqw6w8xZLVUrbMh6RvJB9wxKY
qykWOKCCuDU3EEmf4Kkl1pW2YDOiLVDuiwvRd7gqjD5KVoyerMvcNZVf5Rfu
jfTTbGG4LOYrqadJPKzOV+UM8+kV3nzDrtXcvk+p1N9X1Zv1inEYtAe2v1Pi
dFNcSJkf5YoLbjhAFoVpjI2e0Wl+q+IJ9TDi3Ek9jmboXCZWIaV98KnYQ6GH
l3raQIobjkwLK87zffXln+iIrytslnMtifcc5Zi7DmAoPq2XmmNie8CE69Jc
bJL3l5hV2mi4605gQN0ip1OKX/UmdL5XguaKy7LnI33yiPC2SBW5GlfrelV5
NYaH6whUXFYQiSbzVg85tIQ54Z0NRcY1H2gE7tZtlbnJvT9swm9gcCIKdlmt
4qodeYCQmeg3nrsE1YLHCHcOh6D20TkZfkNK5SpJaCa48Bav8Tr5jm/VueFi
nRp6LjjStq8zfCOWZ6xs700O01suuZPlvLU+iWAg4FGJYpyhL6k77Q0TPOvE
EuyR4DOAQT+NCrMiHLQyN9sHIu4bFHAzJgVYSZtjhSLVlvA1EF7KBQXlmZei
m+gvReUa9IqJP3AWVtyIzR2twhyQRoAwls7dvs4mp36GpTfVSSMwZ8mH0TaQ
Xrtt2ctmNsqb0bIml+DJ+gytG2w9dXWAeMZuA3J/wzIfxXvWuWQENNnNNktq
eBFUurWcad3WroQoJW1E7rSiRPJkSS7iykdckj1uP2zZxGF2TOOxlBXVUs65
M2lHsKjSQgOnMLouOM125zLjIJ8SINcC4TnkKCEsO+C5L66ZUg7zVrCr5C7H
gkOUsl6AwBgKvy6inNwo2J3D3VrPFnrv7e8vk8wHtPxCrGnJ28x2es0uZ9RI
WXvZMIY2o/D2iG3A3R18QtBMC2R0PVX+Jou45W9Vp5AJFhCS6iNtdcHGXxND
f3t5k76iJcI+pN3UFHbNrM4zr0bcWomCJ6kCJyGFQO2p+ya14dQ2TiCawVit
Gkq69WKcxYbOIw4pkJQLLNri67OosRq7oWEmigOVj7H7L11lJfRAJFH2js6I
pi1W6Is4GGdPPm4dFmxOaYqt4idOvg3qS4VcKyohMki3+3Mua/p0gKl2rWmS
Hq2OOqGi/AtaykXlqk30Vo7njoyjthqZQbyn2BQ6F4tTmFK2DEvMuKOfthFs
Q3d40GNWa1IAQX3gQHArtMJiz82WfKMXZULHz432LAFwWk35mNJEewdBsaKQ
e2xe23kIJIDyijmpdM3F24hFY3mNFOr1zsHgSl+ajZxdpKyQINp4uLJJjOiN
WOFlQo2yIL5qIg2jeuNaOYxlFjmLaAk0PjA+kfnSIyTkvaAAmRWSfHheUlba
bhk97267nqSE5BaWmvpM7YJ5m6gIkT1H4UAEq7JxpWWM5VgePF4GLijUeccX
42Gq9ow2kOYClYSMaKJ0pWXK8LqF9WQ0eZPrX3DZikeK5XKjSUjpYlSInn2G
ix7st2/GI6MnR5Dx2U/FdO0umdqRuYtFt+ASOmhseWElUB/QmppmJwc1T563
zvVLtnpGDN8cLEGRxQ6e11JyiqJ9TXX9KKPAob53YndbI9huZEScublEMJJm
CA4GocuahJJQgokFA5Kpm9S96rQQfjxOFubowkPgQNIy1x4EOTmFF4jHmCi5
BVL5wKF+Tp+SRD5iPTHC4v+kemKd1kWg4psWqqEH3rsuS7E8WOtJYzzuEVWQ
mkfAilQrx3X69skIj0zLKrrhOALHScRksQGmjg2OKRTHKmwmhtefJpJqdvgm
C/L5w0T335FvBkh55YEmBShsEs2lcBbKjj4+0Gbkoy00wvq8jtglS51K/OnN
Rl7FdVNnD265G1SUFDVGxYq9o5NXAwCskhb3LglOMnpD9dNiTI6HEorvhFi4
4MaxRPWtHvKQ8A1VKObOzzSl2jFhOQYSahcOYUFsQcbxS4vghZW+dUmTk7Ho
sNwj688V15Xk4AuCKmmgODl5iNDZuybx4kz0EFOo+GhCMUXWlUCK9rxUkwCO
7zaNBhYx+gULBA5bXAOl1LI5PlKMctVgdXPyT18UCfoTmodB069zFgKR7aCn
/ESD6o7EUcOeTMa8iyonCVGKyzeBw0ujFaif+GhWkd12WbRorwYsnF6WbUHz
DNluLa2/Ofg8J0oG8JjSAcPa9mmc/RGhkQb6BWsae/89iSPkXSLiv6rQD0RC
OJrwpEPzAuB8IY5ZF0HV8cmTxxwnr3OanKwxI/H7yjpyMs6yHUDOu5mCDOod
+pTFNyXaYgtFUGkIYwoLDwDDm+zNNb2+SOqlOCi1DiMozkoqiMxZR9ccLUst
eyQ7hdrnhZGvFJYO+F9yJXvgNGXDRS1cJ1IR7HhEkczyszV11J4gDzgrRG9G
VizBhedinOTpw/I5FWDkBewDsdTFxwwzzo1YyisgRvqH4vfJiob8AU63WnrH
lFSUUBtmt+5G2+8sGPKqRf/nRZADDglHSPxckzwSdrFF7oLNLNO1dAtA/9v5
uefcgvcAynXt4oXFZUymn9wgqV6S3Tc4fAPEb3q5O/Yx/qaNMJ7MUMkjyVbs
z6Oe4OSz4KqTro+vzSkFAqS+5b/+2/9ytYzM1czO18tZTg0j5uRnC7qHX8yr
M4zzqZYVJrk1GLUkXu1qVsxpxTT60C9tkS/JPI8kG8NFxLhJJZJKLicisU4l
tcmVOcQf75053NiTaxpJzR69NhKZ56ZEgrisFtzzrqgXJHDibeO1LDQu0n5N
y2LjkYBaAmKnrNNI10xdnjkoUwEdpWpy3EqPe2Mrc4tzNpFm3UyLFTeSIA+J
XkbnHcOLxYMjXl7m81Z8ofgs8BVc456gdcZoTT7/qr7mqJtBT03eRovyqikx
1+hpZ3yjzj4AnCJH46/afIEp6Cp9hM3OzpFJ/+MVdjGroZh+voqtqWM3xZbe
SKiF2N3Y3e8KiOFq7Tq2m5ujBpmhZHah+GXxPZSRDeb5IIUwKoq9NsKaeBwU
SGR4DhvCG4zcAz+B20IABdjGhaSkqbjlRfaIhTThYKhl5zW1gEbGPXdfXoKa
jyC8Ib/OC469okfYyaKOLhU53YtdjSKoQJUvXdBR0PknKsBNvMKLL01qwpCL
sEiUz5AHY8QLH2KCvMelvtkfYcsAwjLPpXO7sHAqAuV4FBAnU+cpKAm1lDfQ
JE8L0JhSv1LT5pwjU3EzcoKi2UbFf3vzVsn/w6d1oSHg/BRDg8KJ18t5+Qb5
he33rTkAbD8Z8xEDZBIn7CJVNTgzVSs9OMuuYNv0xgJKMGow4KxE1dw6EpB5
hBgBHxEbSWICHsPtiBAtcbgdJjCo4F0BVfoyb/IW+0LedAtR+zty5lA4co6I
AvL68uhJM/Blk0lPdLFEXokvMUAlzPsRy4I5OmyyWxeB2IUR8AZQInkZwKES
aQAm/bt6d1U6RyQuXF0rFFDs8gjC0cnkAoyxXPl2X/iu8kKO1eHP/WMzegax
bVkA3p9VFH1GuMV1DTAHq75HCTL46oIVH6NkK0d5VUhcFiGa5y87UV0+VHgI
2o5F1cGbLPd5AqsEeObtIMUV3TunbYzDfEAJu2xA6wLZAz1t6IlAIZq1pcEw
YFz+C53BxVLExFpMNpY6M1rUlv4kywTGGDN0XzgHugRXxu2nbAhphkFFigGc
+dZXMTDv6uvAZGkGTSg2+GtjLXRBdUHpYhJQDCjG7RfnN3GKW7bHKRpt9mf2
elDU/QCVDOMCJ4Mh134Rg4faJvMmTmCwS5NkqdbbLbXgrla38IUttFUml0wQ
It+tVBGT6GPN6/RAMLDKOy7fBLMElYZKlOKzGuioyQEEr2iMnsYVhFMUKJRg
DNK3DWkHiFhtNoczpxXOy0XZmmWEIER+AWBa5pwpOtSi3GH9RVyjx2hHUc7I
tjEtqEuKGMFcHLg5paNJh5qLEsf6DgndZE4LJc9sT0MfB9RlPYAlOm00JiAA
ZgeSbEgSOqkGSuLIV0ggWQjAddMtJ2jMM1cLBF5oq2k1b5zevyzFQILma3hi
whwryjxWUqTBKSQVfxrzKpQN5/mNRv+iYkbURk0XJoAt8B40TtAmm6cLIi4i
LumiSohbyuEKhGCRzp4n2Zp0vsWS48u600seTU9w1khiI5EFUkvGGbcVQHxR
v3r/28AlTS3BHrv4adq8bULiXMANtYZivECsMHmvaau6T+INtS3rIWKq2pAJ
+9x0EarOGsAFE0lO5AgVlJoRWW3se+gc44+IUU6tPMJBuppuRd+jCldp4G0d
BxS6xCz6dE4RsQOA8TUiFNXZl/j0Hj+Cd4yVLWLA2jkQKHKnlptOw5WLRTEr
WTrR67Z5dEfFdPPe9UBMuUvg8DLww4wDa2EKpJ/7aNjogEyjQ2P4FM9jU6gF
2hKKnhUjHeXS3VJn0zTLnLlr38i1dyrL7wujULrKB2/fHo+ejhtQA4CErd6/
lyIOvUUncein1Ul2tZ4jJSerX8lKZG9g5TdVnbIaD1WhYT39kvpYEfa6+hQU
1Dne6RIzeRONh4HZklPTlLQb8/K8XL4x3iws2wSkCDkuSYoiTxxNhqIgqMgv
UrFqccb8dYU9Mxb8Oo1L2xKyUNaRMoEmExfcEEjuLtadxcy6bN6opVOsxCxn
OD0REZ1ThyeCeapVngXZ2LQoq2OJNR+NjbP11IdaqFEAz5V3CipJfQ6CE8dw
+gYy6qNya4El6DMMN3F6uMJTIrnjohjMbNMMBINq3WKdA3RTcIrc8eT5JGH0
J8yYromoIN0AyZeelPxxIbxs1xHqbvzDeG2i/rT8TSOJQCTeunwzNPO6UmmT
Zb7Kb/Ls5AZ0iQUlTwgvq50PgjK+ZmpAJRNXdd5eU3IvGuyr+ZoNXizM6ZC4
Qlxsg8oUqSPesw67bcY5PziGge8Vy3scP3MPnZtrEGqae+LpNgPc40pmaEHK
AZlQ1nPbYn9iW+dL7oaHyiThiSxHLoIAsWmqaamJQDuj0YhcUnhEk+mbZXUN
xIFVqJ23hwzMYvab3XMQuwqsSvgDqhoo0WLKcoVjf1OX7V+ykxZWARrcMts7
Of6n7Nu6Wq+yybeg1fyPNSqn4+zbvIaJs5d1PquyvWen32X/Alxkesn15F6B
NpV9h1ILHNve8bPTbwaSsIKOehf7qshCtI/OAcVBunMXGJuIAaawpskMyOoS
u8AD5Q8m4wpP3vB7sQbZEaUtsm3CpSMHHbfOJpGGnTEOJcbYNIUdQte8AjQJ
nhkFRiIqUdqsVoTYbZGzGVhPBOfyaxqqzIVNJLGlAHqcMj0LZ3WlwXX/tsM3
K4fsc7B1jSsnSEkX77dvj777cXL64AHwBA52OAPOLQkepXrLM8ZCzppcrdWY
3azK2kqIeBh1ft6ScOoSYvGgO6nnNi/9bSef+H0a0XpMyyrm2tTjTqKxQovd
p3sy4yCR405ayCX5660N/bwuiri8iU80TqSLpxKMMVr6bF42lybNmKIMQIwr
MUhHTohKv0hPqR3p38j7eInh3NNylfdex0l3864k/sq8zRSBU6iBoV7ky/Iv
edAw3KSEHANh46N+Sm7WMR1GMFwU5e8hzxmBpowKiA9F44qL7u+7R/MZpi9g
4wmQy/b3JQMc5O36gpAPnT61V+t0KpdG9l1xr0Gn8ZrUDxQJgxXaJDQOaWiR
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
AA==

-->

</rfc>
