<?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.39 (Ruby 4.0.5) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-spice-sd-cwt-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="SD-CWT">Selective Disclosure CBOR Web Tokens (SD-CWT)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-08"/>
    <author fullname="Michael Prorock">
      <organization>mesur.io</organization>
      <address>
        <email>mprorock@mesur.io</email>
      </address>
    </author>
    <author fullname="Orie Steele">
      <organization>Tradeverifyd</organization>
      <address>
        <email>orie@or13.io</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization/>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="01"/>
    <area>Security</area>
    <workgroup>Secure Patterns for Internet CrEdentials</workgroup>
    <keyword>cose</keyword>
    <keyword>cwt</keyword>
    <keyword>selective disclosure</keyword>
    <abstract>
      <?line 83?>

<t>This specification describes a data minimization technique for use with CBOR Web Tokens (CWTs).
The approach is inspired by the Selective Disclosure JSON Web Token (SD-JWT), with changes to align with CBOR Object Signing and Encryption (COSE) and CWTs.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-spice.github.io/draft-ietf-spice-sd-cwt/draft-ietf-spice-sd-cwt.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-spice-sd-cwt/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Patterns for Internet CrEdentials Working Group mailing list (<eref target="mailto:spice@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spice/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spice/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-spice/draft-ietf-spice-sd-cwt"/>.</t>
    </note>
  </front>
  <middle>
    <?line 89?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification creates a new format based on the CBOR Web Token (CWT) specification <xref target="RFC8392"/>.
It enables the Holder of a CWT to disclose or withhold special claims marked as selectively disclosable by the Issuer of a CWT, when presenting those claims to a Verifier.
The approach is inspired by SD-JWT <xref target="RFC9901"/>, with changes to align with conventions from CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/> and CWT.
Holders of SD-CWT credentials can prove the integrity and authenticity of Holder-chosen attributes asserted by an Issuer to a Verifier.
The Holder also proves possession of the confirmation method (defined in <xref target="RFC8747"/>) to prevent copy and paste attacks.</t>
      <t>This document defines a generic container format, not a specific credential type.
For example, a license to operate a vehicle and a license to import a product will contain different attributes.</t>
      <t>SD-CWT is unsuitable for use cases where preventing the Issuer from learning how credentials are used is a requirement.
SD-CWTs provide privacy improvements compared to regular CWTs, which can be further improved by the use of one-time use and batch issuance.</t>
      <section anchor="high-level-flow">
        <name>High-Level Flow</name>
        <figure anchor="fig-high-level-flow">
          <name>High-level SD-CWT Issuance and Presentation Flow</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="584" viewBox="0 0 584 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,464" fill="none" stroke="black"/>
                <path d="M 56,144 L 56,176" fill="none" stroke="black"/>
                <path d="M 288,48 L 288,464" fill="none" stroke="black"/>
                <path d="M 320,64 L 320,96" fill="none" stroke="black"/>
                <path d="M 320,304 L 320,336" fill="none" stroke="black"/>
                <path d="M 320,368 L 320,400" fill="none" stroke="black"/>
                <path d="M 560,48 L 560,464" fill="none" stroke="black"/>
                <path d="M 288,64 L 320,64" fill="none" stroke="black"/>
                <path d="M 296,96 L 320,96" fill="none" stroke="black"/>
                <path d="M 32,112 L 288,112" fill="none" stroke="black"/>
                <path d="M 24,144 L 56,144" fill="none" stroke="black"/>
                <path d="M 32,176 L 56,176" fill="none" stroke="black"/>
                <path d="M 24,208 L 280,208" fill="none" stroke="black"/>
                <path d="M 288,224 L 552,224" fill="none" stroke="black"/>
                <path d="M 296,256 L 560,256" fill="none" stroke="black"/>
                <path d="M 288,304 L 320,304" fill="none" stroke="black"/>
                <path d="M 296,336 L 320,336" fill="none" stroke="black"/>
                <path d="M 288,368 L 320,368" fill="none" stroke="black"/>
                <path d="M 296,400 L 320,400" fill="none" stroke="black"/>
                <path d="M 288,448 L 552,448" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="560,448 548,442.4 548,453.6" fill="black" transform="rotate(0,552,448)"/>
                <polygon class="arrowhead" points="560,224 548,218.4 548,229.6" fill="black" transform="rotate(0,552,224)"/>
                <polygon class="arrowhead" points="304,400 292,394.4 292,405.6" fill="black" transform="rotate(180,296,400)"/>
                <polygon class="arrowhead" points="304,336 292,330.4 292,341.6" fill="black" transform="rotate(180,296,336)"/>
                <polygon class="arrowhead" points="304,256 292,250.4 292,261.6" fill="black" transform="rotate(180,296,256)"/>
                <polygon class="arrowhead" points="304,96 292,90.4 292,101.6" fill="black" transform="rotate(180,296,96)"/>
                <polygon class="arrowhead" points="288,208 276,202.4 276,213.6" fill="black" transform="rotate(0,280,208)"/>
                <polygon class="arrowhead" points="40,176 28,170.4 28,181.6" fill="black" transform="rotate(180,32,176)"/>
                <polygon class="arrowhead" points="40,112 28,106.4 28,117.6" fill="black" transform="rotate(180,32,112)"/>
                <g class="text">
                  <text x="28" y="36">Issuer</text>
                  <text x="292" y="36">Holder</text>
                  <text x="548" y="36">Verifier</text>
                  <text x="360" y="84">Key Gen</text>
                  <text x="148" y="100">Request SD-CWT</text>
                  <text x="128" y="164">Redact Claims</text>
                  <text x="448" y="212">Request Nonce</text>
                  <text x="148" y="228">Receive SD-CWT</text>
                  <text x="448" y="276">Receive Nonce</text>
                  <text x="432" y="324">Disclose some, none, or</text>
                  <text x="408" y="340">all of the Claims</text>
                  <text x="384" y="388">Demonstrate</text>
                  <text x="380" y="404">Possession</text>
                  <text x="452" y="436">Present SD-CWT</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
Issuer                           Holder                         Verifier
  |                                |                                 |
  |                                +---+                             |
  |                                |   | Key Gen                     |
  |        Request SD-CWT          |<--+                             |
  |<-------------------------------+                                 |
  |                                |                                 |
  +---+                            |                                 |
  |   |  Redact Claims             |                                 |
  |<--+                            |                                 |
  |                                |                                 |
  +------------------------------->|             Request Nonce       |
  |        Receive SD-CWT          +-------------------------------->|
  |                                |                                 |
  |                                |<--------------------------------+
  |                                |             Receive Nonce       |
  |                                |                                 |
  |                                +---+                             |
  |                                |   |  Disclose some, none, or    |
  |                                |<--+  all of the Claims          |
  |                                |                                 |
  |                                +---+                             |
  |                                |   |  Demonstrate                |
  |                                |<--+  Possession                 |
  |                                |                                 |
  |                                |             Present SD-CWT      |
  |                                +-------------------------------->|
  |                                |                                 |
]]></artwork>
          </artset>
        </figure>
        <t>This diagram captures the flow to issue and present an SD-CWT.</t>
        <t>The parameters necessary to support these processes can be obtained using transports or protocols that are out of scope for this specification.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The CBOR examples in this document are shown in CBOR Extended Diagnostic Notation (EDN) <xref target="I-D.ietf-cbor-edn-literals"/>.
EDN resembles JSON, but it can contain comments, and it can represent all native CBOR types, including byte strings, tagged values, and CBOR simple values.</t>
      <t>Data model constraints are described using the Concise Data Definition Language (CDDL) <xref target="RFC8610"/>.</t>
      <t>This specification uses terms from CWT <xref target="RFC8392"/>, COSE <xref target="RFC9052"/> <xref target="RFC9053"/>
and JWT <xref target="RFC7519"/>.</t>
      <t>The terms Claim Name, Claim Key, and Claim Value are defined in <xref target="RFC8392"/>.</t>
      <t>This specification defines the following new terms:</t>
      <dl>
        <dt>Selective Disclosure CBOR Web Token (SD-CWT):</dt>
        <dd>
          <t>A CWT with claims enabling selective disclosure with key binding.</t>
        </dd>
        <dt>Key Binding Token (KBT):</dt>
        <dd>
          <t>A CWT used to demonstrate possession of a confirmation method, associated with an SD-CWT.</t>
        </dd>
        <dt>Redact:</dt>
        <dd>
          <t>In the context of this specification, to replace a Claim Value with its corresponding Redacted Claim Hash.</t>
        </dd>
        <dt>Disclose:</dt>
        <dd>
          <t>In the context of this specification, to provide a Salted Disclosed Claim whose hash matches a Redacted Claim Hash in the same SD-CWT.</t>
        </dd>
        <dt>Selective Disclosure:</dt>
        <dd>
          <t>In the context of this specification, the ability of the Holder to disclose a subset (all, some, or none) of the Redacted Claims in an SD-CWT.</t>
        </dd>
        <dt>Assertion Key:</dt>
        <dd>
          <t>A key used by the Issuer to sign an SD-CWT, including the enclosed Claim Values.</t>
        </dd>
        <dt>Confirmation Key:</dt>
        <dd>
          <t>A key used by the Holder to sign a KBT including the enclosed selected Salted Disclosed Claims.</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>An entity that produces a SD-CWT, containing Claim Values, signed with an Assertion Key.</t>
        </dd>
        <dt>Holder:</dt>
        <dd>
          <t>An entity that presents a KBT, containing an SD-CWT and selected Salted Disclosed Claims, signed with a Confirmation Key.</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>An entity that validates a Partial or Full Disclosure by a Holder.</t>
        </dd>
        <dt>Salted Disclosed Claim:</dt>
        <dd>
          <t>A salted claim included in the unprotected header of an SD-CWT.</t>
        </dd>
        <dt>Redacted Claim Hash:</dt>
        <dd>
          <t>A hash digest of a Salted Disclosed Claim.</t>
        </dd>
        <dt>Redacted Claim:</dt>
        <dd>
          <t>Any Redacted Claim Key or Redacted Claim Element that has been replaced in the
CWT payload by a Redacted Claim Hash.</t>
        </dd>
        <dt>Non-redacted Claim:</dt>
        <dd>
          <t>A claim that was not replaced by the Issuer with a Redacted Claim Hash in the SD-CWT.</t>
        </dd>
        <dt>Redacted Claim Key:</dt>
        <dd>
          <t>The hash of a claim redacted from a map data structure.</t>
        </dd>
        <dt>Redacted Claim Element:</dt>
        <dd>
          <t>The hash of an element redacted from an array data structure.</t>
        </dd>
        <dt>Presented Disclosed Claims Set:</dt>
        <dd>
          <t>The CBOR map containing zero or more Redacted Claim Keys or Redacted Claim Elements.</t>
        </dd>
        <dt>Validated Disclosed Claims Set:</dt>
        <dd>
          <t>The CBOR map containing all non-redacted claims that were signed by the Issuer and all selectively disclosed claims presented by the Holder; omitting all undisclosed instances of Redacted Claim Keys and Redacted Claim Element claims that are present in the original SD-CWT.</t>
        </dd>
      </dl>
    </section>
    <section anchor="overview-of-selective-disclosure-cwt">
      <name>Overview of Selective Disclosure CWT</name>
      <t>SD-CWT operates on CWT Claims Sets as described in <xref target="RFC8392"/>.
CWT Claims Sets contain Claim Keys and Claim Values.
Issuers choose which Claim Keys and Claim Values to redact or include in unredacted form.
Holders choose to disclose none, some, or all of the Redacted Claim Keys and Claim Values, and whether to present an issued SD-CWT at all.
Holders present an SD-CWT and any disclosures to Verifiers in a Key Binding Token (KBT) that proves the Holder's control of the private key corresponding to the SD-CWT confirmation (public) key.</t>
      <t>Selective Disclosure CBOR Web Tokens (SD-CWTs) can be deployed in environments that are already using CWTs with minor changes, even if the tokens contain no optional-to-disclose claims.</t>
      <t>The following diagram explains the relationships between the three roles and the data each processes, using the terminology defined in this specification.</t>
      <figure anchor="f-role-inputs">
        <name>Inputs provided to each Role</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="672" width="496" viewBox="0 0 496 672" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,144 L 8,224" fill="none" stroke="black"/>
              <path d="M 8,368 L 8,496" fill="none" stroke="black"/>
              <path d="M 8,624 L 8,656" fill="none" stroke="black"/>
              <path d="M 24,32 L 24,64" fill="none" stroke="black"/>
              <path d="M 24,272 L 24,304" fill="none" stroke="black"/>
              <path d="M 24,544 L 24,576" fill="none" stroke="black"/>
              <path d="M 32,400 L 32,464" fill="none" stroke="black"/>
              <path d="M 72,64 L 72,136" fill="none" stroke="black"/>
              <path d="M 72,224 L 72,264" fill="none" stroke="black"/>
              <path d="M 72,304 L 72,360" fill="none" stroke="black"/>
              <path d="M 72,496 L 72,536" fill="none" stroke="black"/>
              <path d="M 72,576 L 72,616" fill="none" stroke="black"/>
              <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
              <path d="M 144,544 L 144,576" fill="none" stroke="black"/>
              <path d="M 152,272 L 152,304" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,112" fill="none" stroke="black"/>
              <path d="M 192,544 L 192,576" fill="none" stroke="black"/>
              <path d="M 200,272 L 200,320" fill="none" stroke="black"/>
              <path d="M 296,160 L 296,224" fill="none" stroke="black"/>
              <path d="M 352,560 L 352,576" fill="none" stroke="black"/>
              <path d="M 352,640 L 352,656" fill="none" stroke="black"/>
              <path d="M 376,288 L 376,320" fill="none" stroke="black"/>
              <path d="M 416,416 L 416,464" fill="none" stroke="black"/>
              <path d="M 432,384 L 432,496" fill="none" stroke="black"/>
              <path d="M 488,48 L 488,112" fill="none" stroke="black"/>
              <path d="M 24,32 L 120,32" fill="none" stroke="black"/>
              <path d="M 168,32 L 472,32" fill="none" stroke="black"/>
              <path d="M 128,48 L 168,48" fill="none" stroke="black"/>
              <path d="M 24,64 L 120,64" fill="none" stroke="black"/>
              <path d="M 168,112 L 488,112" fill="none" stroke="black"/>
              <path d="M 8,144 L 280,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 296,192" fill="none" stroke="black"/>
              <path d="M 8,224 L 296,224" fill="none" stroke="black"/>
              <path d="M 24,272 L 152,272" fill="none" stroke="black"/>
              <path d="M 200,272 L 360,272" fill="none" stroke="black"/>
              <path d="M 160,288 L 200,288" fill="none" stroke="black"/>
              <path d="M 24,304 L 152,304" fill="none" stroke="black"/>
              <path d="M 200,320 L 376,320" fill="none" stroke="black"/>
              <path d="M 8,368 L 416,368" fill="none" stroke="black"/>
              <path d="M 32,400 L 400,400" fill="none" stroke="black"/>
              <path d="M 32,432 L 416,432" fill="none" stroke="black"/>
              <path d="M 32,464 L 416,464" fill="none" stroke="black"/>
              <path d="M 8,496 L 432,496" fill="none" stroke="black"/>
              <path d="M 24,544 L 144,544" fill="none" stroke="black"/>
              <path d="M 192,544 L 336,544" fill="none" stroke="black"/>
              <path d="M 152,560 L 192,560" fill="none" stroke="black"/>
              <path d="M 24,576 L 144,576" fill="none" stroke="black"/>
              <path d="M 192,576 L 352,576" fill="none" stroke="black"/>
              <path d="M 8,624 L 336,624" fill="none" stroke="black"/>
              <path d="M 8,656 L 352,656" fill="none" stroke="black"/>
              <path d="M 472,32 C 480.83064,32 488,39.16936 488,48" fill="none" stroke="black"/>
              <path d="M 280,144 C 288.83064,144 296,151.16936 296,160" fill="none" stroke="black"/>
              <path d="M 360,272 C 368.83064,272 376,279.16936 376,288" fill="none" stroke="black"/>
              <path d="M 416,368 C 424.83064,368 432,375.16936 432,384" fill="none" stroke="black"/>
              <path d="M 400,400 C 408.83064,400 416,407.16936 416,416" fill="none" stroke="black"/>
              <path d="M 336,544 C 344.83064,544 352,551.16936 352,560" fill="none" stroke="black"/>
              <path d="M 336,624 C 344.83064,624 352,631.16936 352,640" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="168,288 156,282.4 156,293.6" fill="black" transform="rotate(180,160,288)"/>
              <polygon class="arrowhead" points="160,560 148,554.4 148,565.6" fill="black" transform="rotate(180,152,560)"/>
              <polygon class="arrowhead" points="136,48 124,42.4 124,53.6" fill="black" transform="rotate(180,128,48)"/>
              <polygon class="arrowhead" points="80,616 68,610.4 68,621.6" fill="black" transform="rotate(90,72,616)"/>
              <polygon class="arrowhead" points="80,536 68,530.4 68,541.6" fill="black" transform="rotate(90,72,536)"/>
              <polygon class="arrowhead" points="80,360 68,354.4 68,365.6" fill="black" transform="rotate(90,72,360)"/>
              <polygon class="arrowhead" points="80,264 68,258.4 68,269.6" fill="black" transform="rotate(90,72,264)"/>
              <polygon class="arrowhead" points="80,136 68,130.4 68,141.6" fill="black" transform="rotate(90,72,136)"/>
              <g class="text">
                <text x="76" y="52">Issuer</text>
                <text x="256" y="52">Issuer Private Key,</text>
                <text x="252" y="68">Holder Public Key,</text>
                <text x="244" y="84">Full Claims Set,</text>
                <text x="328" y="100">Pre-issuance redaction/decoy requests</text>
                <text x="152" y="164">Issuer-Signed: Plaintext Claims +</text>
                <text x="112" y="180">Redacted Claim Hashes</text>
                <text x="128" y="212">All Salted Disclosed Claims</text>
                <text x="84" y="292">Holder</text>
                <text x="288" y="292">Holder Private Key,</text>
                <text x="284" y="308">Chosen Disclosures</text>
                <text x="148" y="388">Holder-Signed: Key Binding Token</text>
                <text x="224" y="420">Issuer-Signed: Claims + Redacted Claim Hashes</text>
                <text x="204" y="452">Holder-Selected: Salted Disclosed Claims</text>
                <text x="76" y="564">Verifier</text>
                <text x="272" y="564">Issuer Public Key</text>
                <text x="140" y="644">Validated Disclosed Claims Set</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
  +-----------+     +--------------------------------------.
  |   Issuer  |<----+ Issuer Private Key,                   |
  +-----+-----+     | Holder Public Key,                    |
        |           | Full Claims Set,                      |
        |           | Pre-issuance redaction/decoy requests |
        |           +---------------------------------------+
        v
+----------------------------------.
| Issuer-Signed: Plaintext Claims + |
|  Redacted Claim Hashes            |
+-----------------------------------+
| All Salted Disclosed Claims       |
+-------+---------------------------+
        |
        v
  +---------------+     +--------------------.
  |    Holder     |<----+ Holder Private Key, |
  +-----+---------+     | Chosen Disclosures  |
        |               +---------------------+
        |
        v
+---------------------------------------------------.
| Holder-Signed: Key Binding Token                   |
|  +----------------------------------------------.  |
|  | Issuer-Signed: Claims + Redacted Claim Hashes | |
|  +-----------------------------------------------+ |
|  | Holder-Selected: Salted Disclosed Claims      | |
|  +-----------------------------------------------+ |
|                                                    |
+-------+--------------------------------------------+
        |
        v
  +--------------+     +------------------.
  |  Verifier    |<----+ Issuer Public Key |
  +-----+--------+     +-------------------+
        |
        v
+-----------------------------------------.
| Validated Disclosed Claims Set           |
+------------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>The next diagram follows the steps of a specific Claim being redacted and then disclosed using the terminology specific to this document.</t>
      <figure anchor="f-roundtrip-claim">
        <name>Round trip journey of a Redacted Claim</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1008" width="448" viewBox="0 0 448 1008" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
              <path d="M 8,160 L 8,192" fill="none" stroke="black"/>
              <path d="M 8,272 L 8,304" fill="none" stroke="black"/>
              <path d="M 8,640 L 8,672" fill="none" stroke="black"/>
              <path d="M 8,752 L 8,784" fill="none" stroke="black"/>
              <path d="M 8,848 L 8,880" fill="none" stroke="black"/>
              <path d="M 8,960 L 8,992" fill="none" stroke="black"/>
              <path d="M 24,304 L 24,632" fill="none" stroke="black"/>
              <path d="M 48,368 L 48,400" fill="none" stroke="black"/>
              <path d="M 48,464 L 48,592" fill="none" stroke="black"/>
              <path d="M 56,64 L 56,152" fill="none" stroke="black"/>
              <path d="M 56,192 L 56,264" fill="none" stroke="black"/>
              <path d="M 56,672 L 56,744" fill="none" stroke="black"/>
              <path d="M 56,784 L 56,840" fill="none" stroke="black"/>
              <path d="M 56,880 L 56,952" fill="none" stroke="black"/>
              <path d="M 72,512 L 72,560" fill="none" stroke="black"/>
              <path d="M 96,304 L 96,360" fill="none" stroke="black"/>
              <path d="M 96,400 L 96,456" fill="none" stroke="black"/>
              <path d="M 96,592 L 96,632" fill="none" stroke="black"/>
              <path d="M 112,32 L 112,64" fill="none" stroke="black"/>
              <path d="M 112,160 L 112,192" fill="none" stroke="black"/>
              <path d="M 112,640 L 112,672" fill="none" stroke="black"/>
              <path d="M 112,752 L 112,784" fill="none" stroke="black"/>
              <path d="M 352,288 L 352,304" fill="none" stroke="black"/>
              <path d="M 352,528 L 352,560" fill="none" stroke="black"/>
              <path d="M 352,864 L 352,880" fill="none" stroke="black"/>
              <path d="M 352,976 L 352,992" fill="none" stroke="black"/>
              <path d="M 392,384 L 392,400" fill="none" stroke="black"/>
              <path d="M 392,480 L 392,592" fill="none" stroke="black"/>
              <path d="M 8,32 L 112,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 112,64" fill="none" stroke="black"/>
              <path d="M 8,160 L 112,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 112,192" fill="none" stroke="black"/>
              <path d="M 8,272 L 336,272" fill="none" stroke="black"/>
              <path d="M 8,304 L 352,304" fill="none" stroke="black"/>
              <path d="M 48,368 L 376,368" fill="none" stroke="black"/>
              <path d="M 48,400 L 392,400" fill="none" stroke="black"/>
              <path d="M 48,464 L 376,464" fill="none" stroke="black"/>
              <path d="M 72,512 L 336,512" fill="none" stroke="black"/>
              <path d="M 72,560 L 352,560" fill="none" stroke="black"/>
              <path d="M 48,592 L 392,592" fill="none" stroke="black"/>
              <path d="M 8,640 L 112,640" fill="none" stroke="black"/>
              <path d="M 8,672 L 112,672" fill="none" stroke="black"/>
              <path d="M 8,752 L 112,752" fill="none" stroke="black"/>
              <path d="M 8,784 L 112,784" fill="none" stroke="black"/>
              <path d="M 8,848 L 336,848" fill="none" stroke="black"/>
              <path d="M 8,880 L 352,880" fill="none" stroke="black"/>
              <path d="M 8,960 L 336,960" fill="none" stroke="black"/>
              <path d="M 8,992 L 352,992" fill="none" stroke="black"/>
              <path d="M 336,272 C 344.83064,272 352,279.16936 352,288" fill="none" stroke="black"/>
              <path d="M 376,368 C 384.83064,368 392,375.16936 392,384" fill="none" stroke="black"/>
              <path d="M 376,464 C 384.83064,464 392,471.16936 392,480" fill="none" stroke="black"/>
              <path d="M 336,512 C 344.83064,512 352,519.16936 352,528" fill="none" stroke="black"/>
              <path d="M 336,848 C 344.83064,848 352,855.16936 352,864" fill="none" stroke="black"/>
              <path d="M 336,960 C 344.83064,960 352,967.16936 352,976" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="104,632 92,626.4 92,637.6" fill="black" transform="rotate(90,96,632)"/>
              <polygon class="arrowhead" points="104,456 92,450.4 92,461.6" fill="black" transform="rotate(90,96,456)"/>
              <polygon class="arrowhead" points="104,360 92,354.4 92,365.6" fill="black" transform="rotate(90,96,360)"/>
              <polygon class="arrowhead" points="64,952 52,946.4 52,957.6" fill="black" transform="rotate(90,56,952)"/>
              <polygon class="arrowhead" points="64,840 52,834.4 52,845.6" fill="black" transform="rotate(90,56,840)"/>
              <polygon class="arrowhead" points="64,744 52,738.4 52,749.6" fill="black" transform="rotate(90,56,744)"/>
              <polygon class="arrowhead" points="64,264 52,258.4 52,269.6" fill="black" transform="rotate(90,56,264)"/>
              <polygon class="arrowhead" points="64,152 52,146.4 52,157.6" fill="black" transform="rotate(90,56,152)"/>
              <polygon class="arrowhead" points="32,632 20,626.4 20,637.6" fill="black" transform="rotate(90,24,632)"/>
              <g class="text">
                <text x="52" y="52">Holder</text>
                <text x="176" y="100">1. Communicates public key,</text>
                <text x="212" y="116">Optionally communicates Claim,</text>
                <text x="268" y="132">Optionally communicates Redaction preference</text>
                <text x="52" y="180">Issuer</text>
                <text x="200" y="228">2. Creates Salted Disclosed Claim</text>
                <text x="164" y="244">[salt, value, key]</text>
                <text x="108" y="292">Salted Disclosed Claim</text>
                <text x="184" y="340">3. Hashes to create</text>
                <text x="136" y="388">Redacted Claim Hash</text>
                <text x="220" y="436">4. Replaces Claim Value with</text>
                <text x="184" y="484">Redacted Claim (in CWT payload)</text>
                <text x="212" y="532">Original Claim Value is replaced</text>
                <text x="180" y="548">with Redacted Claim Hash</text>
                <text x="52" y="660">Holder</text>
                <text x="148" y="708">5. Presents selected</text>
                <text x="184" y="724">Salted Disclosed Claims</text>
                <text x="52" y="772">Verifier</text>
                <text x="196" y="820">6. Hashes Salted Disclosed Claim</text>
                <text x="140" y="868">Redacted Claim Hash (computed)</text>
                <text x="192" y="916">7. Matches with hash in payload</text>
                <text x="168" y="932">to recover original</text>
                <text x="112" y="980">Claim Value (recovered)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+------------+
|  Holder    |
+-----+------+
      |
      | 1. Communicates public key,
      |    Optionally communicates Claim,
      |    Optionally communicates Redaction preference
      v
+------------+
|  Issuer    |
+-----+------+
      |
      | 2. Creates Salted Disclosed Claim
      |    [salt, value, key]
      v
+-----------------------------------------.
| Salted Disclosed Claim                   |
+-+--------+-------------------------------+
  |        |
  |        | 3. Hashes to create
  |        v
  |  +-----------------------------------------.
  |  | Redacted Claim Hash                      |
  |  +-----+------------------------------------+
  |        |
  |        | 4. Replaces Claim Value with
  |        v
  |  +-----------------------------------------.
  |  | Redacted Claim (in CWT payload)          |
  |  |                                          |
  |  |  +---------------------------------.     |
  |  |  | Original Claim Value is replaced |    |
  |  |  | with Redacted Claim Hash         |    |
  |  |  +----------------------------------+    |
  |  |                                          |
  |  +-----+------------------------------------+
  |        |
  v        v
+------------+
|  Holder    |
+-----+------+
      |
      | 5. Presents selected
      |    Salted Disclosed Claims
      v
+------------+
| Verifier   |
+-----+------+
      |
      | 6. Hashes Salted Disclosed Claim
      v
+-----------------------------------------.
| Redacted Claim Hash (computed)           |
+-----+------------------------------------+
      |
      | 7. Matches with hash in payload
      |    to recover original
      v
+-----------------------------------------.
| Claim Value (recovered)                  |
+------------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <section anchor="a-cwt-without-selective-disclosure">
        <name>A CWT without Selective Disclosure</name>
        <t>Below is the payload, or claims set, of a standard CWT not using selective disclosure.
It consists of standard CWT claims, the Holder confirmation key, and five fictitious example claims.
The payload is shown below in EDN <xref target="I-D.ietf-cbor-edn-literals"/>.
Note that the fictitious map keys shown in the examples do not have IANA registered integer keys.</t>
        <figure anchor="fig-cwt-claimset">
          <name>CWT Claims Set Without Selective Disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /most_recent_inspection_passed/ 500: true,
    /inspector_license_number/ 501: "ABCD-123456",
    /inspection_dates/ 502 : [
        1549560720,   / 2019-02-07T17:32:00 /
        1612498440,   / 2021-02-04T20:14:00 /
        1674004740,   / 2023-01-17T17:19:00 /
    ],
    /inspection_location/ 503: {
        "country": "us",            / United States /
        "region": "ca",             / California /
        "postal_code": "94188"
    }
}
]]></sourcecode>
        </figure>
        <t>The fictitious claims deal with attributes of an inspection of the subject: the pass/fail result, the inspection location, the license number of the inspector, and a list of dates when the subject was inspected.</t>
      </section>
      <section anchor="holder-gets-an-sd-cwt-from-the-issuer">
        <name>Holder gets an SD-CWT from the Issuer</name>
        <t>Alice would like to selectively disclose some of these claims to different Verifiers.
Note that some of the claims may not be selectively disclosable.
In our next example, the pass/fail status of the inspection, the most recent inspection date, and the country of the inspection will be claims that are always present in the SD-CWT.
After the Holder requests an SD-CWT from the Issuer, the Issuer generates the following SD-CWT:</t>
        <figure anchor="basic-issuer-cwt">
          <name>Issued SD-CWT with all disclosures</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18([  / issuer SD-CWT /
  / CWT protected / << {
    / alg /    1  : -35, / ES384 /
    / kid /    4  : 'https://issuer.example/cose-key3',
    / typ /    16 : 293, # application/sd-cwt
    / sd_alg / 170 : -16  / SHA256 /
  } >>,
  / CWT unprotected / {
    / sd_claims / 17 : [ / these are all the disclosures /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
        <<[
            /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
            /value/  1549560720   / inspected 7-Feb-2019 /
        ]>>,
        <<[
            /salt/   h'7af7084b50badeb57d49ea34627c7a52',
            /value/  1612560720   / inspected 4-Feb-2021 /
        ]>>,
        <<[
            /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
            /value/  "ca",
            /claim/  "region"   / region=California /
        ]>>,
        <<[
            /salt/   h'37c23d4ec4db0806601e6b6dc6670df9',
            /value/  "94188",
            /claim/  "postal_code"
        ]>>,
    ]
  },
  / CWT payload / << {
    / iss / 1   : "https://issuer.example",
    / sub / 2   : "https://holder.example",
    / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
    / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
    / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
    / cnf / 8   : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /most_recent_inspection_passed/ 500: true,
    /inspection_dates/ 502 : [
        / redacted inspection date 7-Feb-2019 /
        60(h'1b7fc8ecf4b1290712497d226c04b503
             b4aa126c603c83b75d2679c3c613f3fd'),
        / redacted inspection date 4-Feb-2021 /
        60(h'64afccd3ad52da405329ad935de1fb36
             814ec48fdfd79e3a108ef858e291e146'),
        1674004740,   / 2023-01-17T17:19:00 /
    ],
    / inspection_location / 503 : {
        "country" : "us",            / United States /
        / redacted_claim_keys / simple(59) : [
            / redacted region /
            h'0d4b8c6123f287a1698ff2db15764564
              a976fb742606e8fd00e2140656ba0df3'
            / redacted postal_code /
            h'c0b7747f960fc2e201c4d47c64fee141
              b78e3ab768ce941863dc8914e8f5815f'
      ]
    },
    / redacted_claim_keys / simple(59) : [
        / redacted inspector_license_number /
        h'af375dc3fba1d082448642c00be7b2f7
          bb05c9d8fb61cfc230ddfdfb4616a693'
    ]
  } >>,
  / CWT signature / h'12bdb0136ed93db0e3400660d5aee1ba
                      68ff24e743d613eea55d3bedff167ae4
                      d3c9c328ebfdc1793a178e754ce11432
                      f2e69a92eee6953d38d5a58830ece550
                      21951a83e4e30365828bb7918ceb187a
                      21da18c071ce2461ef642a9e7959299e'
])
]]></sourcecode>
        </figure>
        <t>Some of the claims are <em>redacted</em> in the payload. The corresponding <em>disclosure</em> is communicated in the unprotected header in the <tt>sd_claims</tt> header parameter.
For example, the <tt>inspector_license_number</tt> claim is a Salted Disclosed Claim, consisting of a per-disclosure random salt, the Claim Value, and Claim Key.</t>
        <figure anchor="first-disclosure">
          <name>CBOR extended diagnostic notation representation of inspector_license_number disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
]]></sourcecode>
        </figure>
        <t>This is represented in CBOR pretty-printed format as follows (with end-of-line comments and spaces inserted for clarity):</t>
        <figure>
          <name>CBOR encoding of inspector_license_number disclosure, pretty-printed in hexadecimal</name>
          <sourcecode type="cbor-pretty"><![CDATA[
83                                     # array(3)
   50                                  # bytes(16)
      bae611067bb823486797da1ebbb52f83 # 16-byte salt
   6b                                  # text(11)
      414243442d313233343536           # "ABCD-123456"
   19 01f5                             # unsigned(501)
]]></sourcecode>
        </figure>
        <t>The cryptographic hash, using the hash algorithm identified by the <tt>sd_alg</tt> header parameter in the protected headers, of that byte string is the Redacted Claim Hash (shown in hex).
The digest value is included in the payload in a <tt>redacted_claim_keys</tt> field for a Redacted Claim Key (in this example), or in a named array for a Redacted Claim Element (for example, for the redacted claim element of <tt>inspection_dates</tt>).</t>
        <figure>
          <name>SHA-256 hash of inspector_license_number disclosure, in hexadecimal</name>
          <artwork><![CDATA[
d9df03da474fcb3c65771748e2e0608cf437504ecc24f450aaeacd40dd552b3f
]]></artwork>
        </figure>
        <t>Finally, since this redacted claim is a map key and value, the Redacted Claim Hash is placed in a <tt>redacted_claim_keys</tt> array in the SD-CWT payload at the same level of hierarchy as the original claim.</t>
        <figure>
          <name>redacted inspector_license_number claim in the issued CWT payload</name>
          <sourcecode type="cbor-diag"><![CDATA[
  / redacted_claim_keys / simple(59) : [
      / redacted inspector_license_number /
      h'd9df03da474fcb3c65771748e2e0608c
        f437504ecc24f450aaeacd40dd552b3f',
      / ... next redacted claim at the same level would go here /  ],
]]></sourcecode>
        </figure>
        <t>Redacted claims that are array elements are handled slightly differently, as described in <xref target="blinded-claims"/>.</t>
      </section>
      <section anchor="sd-cwt-preparation">
        <name>Holder prepares an SD-CWT for a Verifier</name>
        <t>When the Holder wants to send an SD-CWT and disclose none, some, or all of the redacted values, it makes a list of the values to disclose and puts them in <tt>sd_claims</tt> header parameter in the unprotected header.
If the Holder does not disclose any claims, it <bcp14>MUST</bcp14> omit the <tt>sd_claims</tt> header parameter.</t>
        <t>For example, Alice decides to disclose to a Verifier the <tt>inspector_license_number</tt> claim (ABCD-123456), the <tt>region</tt> claim (California), and the earliest date element in the <tt>inspection_dates</tt> array (7-Feb-2019).</t>
        <figure anchor="edn-chosen-disclosures">
          <name>The Holder's choice of the disclosures to present</name>
          <sourcecode type="cbor-diag"><![CDATA[
    / sd_claims / 17 : [ / these are the disclosures /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
        <<[
            /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
            /value/  1549560720   / inspected 7-Feb-2019 /
        ]>>,
        <<[
            /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
            /value/  "ca",
            /claim/  "region"   / region=California /
        ]>>,
    ]
]]></sourcecode>
        </figure>
        <t>When the Verifier requires freshness, it provides a nonce that the Holder signs in the KBT as the <tt>cnonce</tt> claim (<xref target="kbt-claims"/>).</t>
        <t>Finally, the Holder generates a Key Binding Token (KBT) that ties together the SD-CWT generated by the Issuer (with the disclosures the Holder chose for the Verifier in its unprotected header), the Verifier target audience and optional nonces, and proof of possession of the Holder's private key.</t>
        <t>As shown in the elided example below, the issued SD-CWT is placed in the <tt>kcwt</tt> (Confirmation Key CWT) protected header field (defined in <xref target="RFC9528"/>).
For the full example, see <xref target="minimal-spanning-example"/>.</t>
        <figure anchor="edn-elided-kbt">
          <name>Elided example of a Key Binding Token</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18( / sd_kbt / [
  / KBT protected / << {
    / alg /    1:  -7, / ES256 /
    / kcwt /  13:  ...
           /  *** SD-CWT from Issuer goes here      /
           /  with Holder's choice of disclosures   /
           /  in the SD-CWT unprotected header  *** /,
    / end of issuer SD-CWT /
    / typ /   16:  294   # application/kb+cwt,
  } >>,     / end of KBT protected header /
  / KBT unprotected / {},
  / KBT payload / << {
    / aud    /  3    : "https://verifier.example/app",
    / iat    /  6    : 1725244237, / 2024-09-02T02:30:37+00:00Z /
    / cnonce / 39    : h'8c0f5f523b95bea44a9a48c649240803'
  } >>,      / end of KBT payload /
  / KBT signature / h'ca38c411693201ceb418ab75217745cc
                      f1d52f76c934ce2910a9f4ccc4293711
                      f9ee18347b51f6f815d89b77d407e494
                      5551118df8f9b662e5250fb1c5f070c8'
])   / end of kbt /
]]></sourcecode>
        </figure>
        <t>The digests in protected parts of the issued SD-CWT and the disclosures hashed in unprotected header of the <tt>issuer_sd_cwt</tt> are used together by the Verifier to confirm the disclosed claims.
Since the unprotected header of the included SD-CWT is covered by the signature in the KBT, the Verifier has assurance that the Holder included the sent list of disclosures.</t>
      </section>
    </section>
    <section anchor="sd-cwt-definition">
      <name>SD-CWT Definition</name>
      <t>SD-CWT is modeled after SD-JWT, with adjustments to align with conventions in CBOR, COSE, and CWT.
An SD-CWT <bcp14>MUST</bcp14> declare its content type, by including the protected header parameter <tt>typ</tt> <xref target="RFC9596"/> with one of the following values:</t>
      <ul spacing="normal">
        <li>
          <t>the unsigned integer Constrained Application Protocol (CoAP) <xref target="RFC7252"/> content-format value 293,</t>
        </li>
        <li>
          <t>the string content type value <tt>application/sd-cwt</tt>,</t>
        </li>
        <li>
          <t>or a value declaring that the object is a more specific kind of SD-CWT, such as a content type value using the <tt>+sd-cwt</tt> structured suffix.</t>
        </li>
      </ul>
      <t>The Issuer <bcp14>SHOULD</bcp14> use the value 293 instead of <tt>application/sd-cwt</tt>, as the CBOR representation is considerably smaller (3 bytes versus 19 bytes).</t>
      <t>An SD-CWT is a format based on CWT, but it allows some additional types in maps to indicate values that were or should be redacted, and includes some additional constraints to improve robustness.
Unlike CWT, SD-CWT requires key binding.</t>
      <t>An SD-CWT can contain Redacted Claims (each expressed as a Redacted Claim Hash), at the root level or in any arrays or maps inside its Claims Set.
An SD-CWT is not required to contain any Redacted Claims.</t>
      <ul empty="true">
        <li>
          <t>An SD-CWT with no Redacted Claims is still valuable for its key binding properties.</t>
        </li>
      </ul>
      <t>Optionally the Salted Disclosed Claims (Claim Values and/or Claim Keys) for the corresponding Redacted Claim Hashes are disclosed in the <tt>sd_claims</tt> header parameter in the unprotected header of the CWT (the disclosures).
If there are no disclosures (and when no Redacted Claims Hash is present in the payload) the <tt>sd_claims</tt> header parameter is not present in the unprotected header.</t>
      <t>Any party with a Salted Disclosed Claim can generate its hash, find that hash in the CWT payload, and restore the original claim that was present before redaction.
However, a Verifier with the hash cannot reconstruct the corresponding Redacted Claim without disclosure of the Salted Disclosed Claim.</t>
      <section anchor="blinded-claims">
        <name>Types of Redacted Claims</name>
        <t>Salted Disclosed Claims for Claim Keys are structured as a 128-bit salt, the disclosed value, and the map key (the claim "name") of the redacted element.
For Salted Disclosed Claims of Claim Values (items in an array), the "name" of the claim is omitted.</t>
        <figure anchor="cddl-salted-disclosed">
          <name>CDDL of Salted Disclosed Claims</name>
          <sourcecode type="cddl"><![CDATA[
; an array of bstr-encoded Salted Disclosed Claims
salted-array = [ +bstr-encoded-salted ]

bstr-encoded-salted = bstr .cbor salted-entry
salted-entry = salted-claim / salted-element / decoy
salted-claim = [
  bstr .size 16,     ; 128-bit salt
  any,               ; Claim Value
  (int / text)       ; Claim Key
]
salted-element = [
  bstr .size 16,     ; 128-bit salt
  any                ; Claim Value
]
decoy = [
  bstr .size 16      ; 128-bit salt
]

]]></sourcecode>
        </figure>
        <t>When a Redacted Claim is a key in a map, its Redacted Claim Hash is added to a <tt>redacted_claim_keys</tt> array claim in the CWT payload that is at the same level of hierarchy as the map key being redacted.
The <tt>redacted_claim_keys</tt> key is the CBOR simple value 59 registered for that purpose.
CBOR "simple values" <xref section="3.3" sectionFormat="of" target="RFC8949"/> are values (like <tt>false</tt> or <tt>undefined</tt>) that do need any additional content.
In this specification a simple value of 59 is used as the content of a map key to indicate that one or more map key/value pairs was redacted in this CBOR map.
The simple value 59 is represented in examples using the syntax <tt>simple(59)</tt>.
The simple value 59 in CDDL is represented using the syntax <tt>#7.59</tt>.</t>
        <t>When redacting an individual item in an array, the value of the item is replaced with the digested salted hash as a CBOR byte string, wrapped with the CBOR tag 60.
CBOR tags <xref section="3.4" sectionFormat="of" target="RFC8949"/> annotate other values.
The tag 60 is represented in examples as <tt>60(</tt> <em>tagged value</em> <tt>)</tt>.
The tag 60 is represented in CDDL as <tt>#6.60(</tt> <em>tagged value</em> <tt>)</tt>.</t>
        <figure anchor="cddl-blinded">
          <name>CDDL of Redacted Claim Keys and Redacted Claim Elements</name>
          <sourcecode type="cddl"><![CDATA[
; redacted_claim_keys is used as a map key. The corresponding value is
; an array of Redacted Claim Hashes whose corresponding unredacted map
; keys and values are in the same map.
redacted_claim_keys = #7.59  ; CBOR simple value 59

; CBOR tag for wrapping a redacted element in an array
REDACTED_ELEMENT_TAGNUM = 60

; redacted_claim_element is used in CDDL payloads that contain
; array elements that are meant to be redacted.
redacted_claim_element = #6.<REDACTED_ELEMENT_TAGNUM>( bstr )
]]></sourcecode>
        </figure>
        <t>Redacted Claims can be nested. For example, both individual keys in the <tt>inspection_location</tt> claim, and the entire <tt>inspection_location</tt> element can be separately redacted.
An example nested Claims Set is shown in <xref target="nesting"/>.</t>
        <t>Finally, an Issuer <bcp14>MAY</bcp14> create decoy digests, which look like Redacted Claim Hashes but have only a salt.
Decoy digests are discussed in <xref target="decoys"/>.</t>
      </section>
    </section>
    <section anchor="cwt-diffs">
      <name>Differences from the CBOR Web Token Specification</name>
      <t>The following subsections discuss differences between CWT and SD-CWT or clarify ambiguities in CWT.
Some of these changes are necessary to enable the new functionality of SD-CWT, while some constraints were made in the interest of more robustness.</t>
      <ul empty="true">
        <li>
          <t>Variability in serialization can also be exploited to impact privacy.
See <xref target="security"/> for more details on the privacy impact of serialization and profiling.</t>
        </li>
      </ul>
      <section anchor="definite-length-cbor-required">
        <name>Definite Length CBOR Required</name>
        <t>Encoders of SD-CWT and KBT <bcp14>MUST NOT</bcp14> send indefinite length CBOR.
Decoders of SD-CWT and KBT <bcp14>MUST</bcp14> reject any SD-CWT or KBT received containing indefinite length CBOR.</t>
      </section>
      <section anchor="finite-values-for-standard-date-claims">
        <name>Finite values for standard date claims</name>
        <t>The standard CWT claims <tt>exp</tt>, <tt>nbf</tt>, and <tt>iat</tt> <bcp14>MUST</bcp14> be finite numbers.
For the avoidance of doubt, not a number (NaN) values and positive and negative infinity are not acceptable in those claims.</t>
        <ul empty="true">
          <li>
            <t>In <xref target="RFC8392"/>, these three claims are of type <tt>NumericDate</tt>.
Section 2 of the same spec refers to <tt>NumericDate</tt> as a JWT <tt>NumericDate</tt>, "except that it is represented as [an untagged] CBOR numeric date (from <xref section="2.4.1" sectionFormat="of" target="RFC7049"/>) instead of a JSON number".
In CBOR, a NumericDate can be represented as an unsigned integer, a negative integer, or a floating point value.
CBOR (both <xref target="RFC7049"/> and <xref target="RFC8949"/>) refer to floating-point values to include NaNs, and floating-point numbers that include finite and infinite numbers.
Neither JSON <xref target="RFC8259"/> nor JWT <xref target="RFC7519"/> can represent infinite values.</t>
          </li>
        </ul>
        <t>As IEEE double-precision floating point numbers smaller than -(2^53) and larger than 2^53 are no longer as precise as CBOR integers, use of floating point numbers smaller than -(2^53) and larger than 2^53 is FORBIDDEN.</t>
      </section>
      <section anchor="allowed-types-of-cbor-map-keys">
        <name>Allowed types of CBOR map keys</name>
        <t>According to Section 1.1 of the CBOR Web Token Specification <xref target="RFC8392"/>, "CBOR uses text strings, negative integers, and unsigned integers as map keys."
Section 1.5 of CBOR Object Signing and Encryption (COSE): Structures and Process <xref target="RFC9052"/> states: "In COSE, we use text strings, negative integers, and unsigned integers as map keys."
While a CBOR map key can contain any CBOR type, this statement implies that CWT map keys only contain those types.</t>
        <t>An SD-CWT payload is typically its COSE payload.
<xref target="RFC9597"/> also defines the <tt>CWT Claims</tt> COSE Header Parameter (value 15) that can appear in the protected headers; if it exists, it contains a CBOR map with additional claims that are treated as if they were in the SD-CWT payload.
Both of these maps are described as SD-CWT Claims Maps.</t>
        <ul empty="true">
          <li>
            <t>Note that <tt>CWT Claims</tt> is a separate CBOR map from the COSE payload and can contain the same Claim Keys as the COSE payload CBOR map.</t>
          </li>
        </ul>
        <t>The same valid CWT claim keys could be present in both SD-CWT Claims Maps, but if so, they <bcp14>MUST</bcp14> have the same unredacted value.
Neither, one, or both could be redacted.
If both are redacted they would have different disclosures, salts, and Redacted Claim Hashes.</t>
        <t>In addition to map keys that are valid in CWT, SD-CWT Claims Maps <bcp14>MAY</bcp14> contain the CBOR simple value registered in this specification in <xref target="simple59"/>.
In SD-CWTs exchanged between the Holder and the Issuer prior to issuance, map keys <bcp14>MAY</bcp14> also consist of the To Be Redacted tag (defined in <xref target="tbr-tag"/>), containing an integer or text string; or a To Be Decoy tag (defined in <xref target="tb-decoy-tag"/>), containing a positive integer.
These two tags provide a way for the Holder to indicate specific claims to be redacted or decoys to be inserted.</t>
        <t>The following list summarizes the map key constraints on SD-CWTs and KBTs:</t>
        <ul spacing="normal">
          <li>
            <t>The KBT protected headers <tt>kcwt</tt> Header Parameter exclusively contains:
            </t>
            <ul spacing="normal">
              <li>
                <t>a single valid SD-CWT</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The KBT protected headers <bcp14>MUST NOT</bcp14> contain a <tt>CWT Claims</tt> Header Parameter.</t>
          </li>
          <li>
            <t>The KBT payload map; unprotected headers map; and protected headers map (excluding the <tt>kcwt</tt> Header Parameter) exclusively contain map keys (at any level of depth) with the following map key types:
            </t>
            <ul spacing="normal">
              <li>
                <t>unsigned integers</t>
              </li>
              <li>
                <t>negative integers</t>
              </li>
              <li>
                <t>text strings with a length no greater than 255 octets</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The SD-CWT unprotected headers map; and the protected headers map (excluding the <tt>CWT Claims</tt> Header Parameter) exclusively contain map keys (at any level of depth) with the following map key types:
            </t>
            <ul spacing="normal">
              <li>
                <t>unsigned integers</t>
              </li>
              <li>
                <t>negative integers</t>
              </li>
              <li>
                <t>text strings with a length no greater than 255 octets</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The SD-CWT Claims Maps at any level of depth, exclusively contain map keys with the following map key types:
            </t>
            <ul spacing="normal">
              <li>
                <t>unsigned integers;</t>
              </li>
              <li>
                <t>negative integers;</t>
              </li>
              <li>
                <t>text strings with a length no greater than 255 octets;</t>
              </li>
              <li>
                <t>the simple value 59; or</t>
              </li>
              <li>
                <t>when disclosable claims are communicated to the Issuer, prior to issuance:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>the To Be Decoy tag 62 <xref target="tb-decoy-tag"/> containing a positive integer, or</t>
                  </li>
                  <li>
                    <t>the To Be Redacted tag 58 <xref target="tbr-tag"/> containing:
                    </t>
                    <ul spacing="normal">
                      <li>
                        <t>an unsigned integer,</t>
                      </li>
                      <li>
                        <t>a negative integer, or</t>
                      </li>
                      <li>
                        <t>a text strings with a length no greater than 255 octets.</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>In other words, there are exactly three places that can contain map keys (including values that might contain nested maps) with the SD-CWT values that are not allowed in a CWT:</t>
        <ul spacing="normal">
          <li>
            <t>in the payload Claims Map of an SD-CWT</t>
          </li>
          <li>
            <t>in the <tt>CWT Claims</tt> Header Parameter Claims Map in the protected headers of an SD-CWT</t>
          </li>
          <li>
            <t>in the <tt>kcwt</tt> Header Parameter of a KBT (in one of the embedded SD-CWT Claims Maps).</t>
          </li>
        </ul>
        <t>All the other Header Parameters, and the KBT payload need to contain values valid in a CWT.
These values are represented by the <tt>safe-value</tt> CDDL type.</t>
        <figure anchor="cddl-legal-values">
          <name>CDDL of Safe Values in SD-CWTs</name>
          <sourcecode type="cddl"><![CDATA[
; CWT claim legal values only
safe_map = { * label => safe_value }

safe_value =
  int / tstr / bstr /
  [ * safe_value ] /
  safe_map /
  #6.<safe_tag>(safe_value) / #7.<safe_simple> / float


; legal values in issued SD-CWT
issued_sd_cwt_map = {
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}

issued_array_element = redacted_claim_element / issued_sd_cwt_value

issued_sd_cwt_value =
  int / tstr / bstr /
  [ * issued_array_element ] /
  issued_sd_cwt_map /
  #6.<safe_tag>(issued_sd_cwt_value) / #7.<safe_simple> / float


; legal values in claim set sent to Issuer
preissuance_label = label /
                    #6.<TO_BE_REDACTED_TAGNUM>(label) /
                    #6.<TO_BE_DECOY_TAGNUM>(uint .gt 0)

preissuance_map = { * preissuance_label => preissuance_value }

preissuance_value =
  int / tstr / bstr /
  [ * preissuance_value ] /
  preissuance_map /
  #6.<safe_tag>(preissuance_value) / #7.<safe_simple> / float

; CBOR tag number for wrapping to-be-redacted keys or elements
TO_BE_REDACTED_TAGNUM = 58
; CBOR tag number for indicating a decoy value is to be inserted here
TO_BE_DECOY_TAGNUM = 62

label = int / tstr .size (1..255)
safe_tag = uint .ne (TO_BE_REDACTED_TAGNUM /
                     TO_BE_DECOY_TAGNUM /
                     REDACTED_ELEMENT_TAGNUM)

; exclude reserved simple values (24 through 31) from Table 4 of
; RFC 8949, and redacted keys array
safe_simple =  0..23 / 32..58 / 60..255
secs = int / float53
float53 = -9007199254740992.0..9007199254740992.0 ; from 2^53 to 2^53

]]></sourcecode>
        </figure>
        <ul empty="true">
          <li>
            <t>Note that Holders presenting to a Verifier that does not support this specification would need to present a CWT without tagged map keys or simple value map keys.</t>
          </li>
        </ul>
        <t>Tagged map keys are not registered in the CBOR Web Token Claims IANA registry, since tags are not valid map keys in <xref target="RFC8392"/>.
Instead, the tag provides additional information about the tagged Claim Key and the corresponding (untagged) value.
Issuers <bcp14>MUST NOT</bcp14> nest multiple levels of tags in a map key. Holders and Verifiers <bcp14>MUST</bcp14> reject SD-CWTs that contain multiple levels of tags in a map key.</t>
      </section>
      <section anchor="dup-map-key">
        <name>Duplicate map key detection</name>
        <t>Implementations <bcp14>MUST NOT</bcp14> send multiple map keys inside the same CBOR map having the same CBOR Preferred Encoding (see <xref section="4.1" sectionFormat="of" target="RFC8949"/>).
This applies to any map anywhere in an SD-CWT or a KBT.</t>
        <ul empty="true">
          <li>
            <t>Note that it is not necessary to actually encode the map keys using Preferred Encoding to satisfy this requirement.</t>
          </li>
        </ul>
        <t>Likewise, a single SD-CWT Claims Set <bcp14>MUST NOT</bcp14> contain a map (at any level of depth) with both a map key <tt>k</tt>, and <tt>k</tt> tagged with the To Be Redacted tag (see <xref target="tbr-tag"/>).
Map keys and their To Be Redacted tagged verison are considered duplicate map keys for the purposes of this specification.</t>
        <t>For example, if the map below is contained inside a payload, it is invalid because the map key 500 and the map key 58(500) cannot both be present.</t>
        <figure anchor="edn-duplicate-map-key">
          <name>EDN Example considered a duplicate map key</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  500: "ABCD-123456",     # map key 500
  58(500): "DEFG-456789"  # to be redacted tag containing 500
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-of-nesting-of-claims">
        <name>Level of Nesting of Claims</name>
        <t>Selective disclosure of deeply nested structures could lead to resource exhaustion vulnerabilities. Issuers, Holders, and Verifiers <bcp14>MAY</bcp14> reject SD-CWT Claims Sets exceeding a depth of 16 levels.</t>
        <t>The individual map key / value pairs in a Claims Set are defined as the "top level", or level 1.
For each value that is an array, a map, or a tagged item, each of the elements of the array, each value corresponding to each map key in the map, and the tagged item are at the next level of depth.</t>
        <t>For example, considering the following abbreviated document, the following table shows the level of depth of the corresponding values:</t>
        <table anchor="_table-depth-levels">
          <name>Levels of Depth in Below Example</name>
          <thead>
            <tr>
              <th align="left">Level</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">https://issuer.example</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">1549560720</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">DCBA-101777</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">us</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">27315</td>
            </tr>
          </tbody>
        </table>
        <figure anchor="edn-depth-levels">
          <name>EDN Example to demonstrate levels of depth</name>
          <sourcecode type="cbor-diag"><![CDATA[
{                                   # contents are level 1
  1: "https://issuer.example",
  ...
  502: 1(1549560720),               # tagged value is level 2
  504: [                            # contents are level 2
    {                               # contents are level 3
      ...
      501: "DCBA-101777",
      503: {                        # contents are level 4
        1: "us",
        ...
      },
      505: 4(                       # decimal fraction tag
        [                           #   273.15
          -2,
          27315                     # level 5
        ]
      )
    },
    ...
  ]
}
]]></sourcecode>
        </figure>
        <t>The contents of the top-level claims map are level 1.
The contents of the array for map key 504 are level 2.
The contents of the map inside that array are level 3 (ex: the value of map key 505).
The value of tag 4 is at level 4.
The values in the array inside tag 4 are at level 5.</t>
      </section>
      <section anchor="use-of-structured-suffixes">
        <name>Use of Structured Suffixes</name>
        <t>Any type which contains the <tt>+sd-cwt</tt> structured suffix <bcp14>MUST</bcp14> be a legal SD-CWT.
A type that is a legal CWT and does not contain any Redacted Claims <bcp14>SHOULD</bcp14> use the <tt>+cwt</tt> structure suffix instead, unless the CBOR map being secured contains claim keys with different semantics than those registered in the CBOR Web Token Claims IANA registry.</t>
      </section>
    </section>
    <section anchor="sd-cwt-issuance">
      <name>SD-CWT Issuance</name>
      <t>How the Holder communicates to the Issuer to request a CWT or an SD-CWT is out of scope for this specification.
Likewise, how the Holder determines which claims to redact or to disclose is a policy matter, which is not discussed in this specification.
This specification defines the format of an SD-CWT communicated between an Issuer and a Holder in this section, and describes the format of a Key Binding Token containing that SD-CWT communicated between a Holder and a Verifier in <xref target="sd-cwt-presentation"/>.</t>
      <t>The protected header <bcp14>MAY</bcp14> contain the <tt>sd_alg</tt> header parameter identifying the algorithm (from the COSE Algorithms registry) used to hash the Salted Disclosed Claims.
If no <tt>sd_alg</tt> header parameter is present, the default hash function SHA-256 is used.</t>
      <t>If any Salted Disclosed Claims or Decoys are present, the unprotected header <bcp14>MUST</bcp14> contain the <tt>sd_claims</tt> header parameter with a Salted Disclosed Claim for every Redacted Claim Hash present anywhere in the payload, and any decoys (see <xref target="decoys"/>).
If there are no disclosures, the <tt>sd_claims</tt> header parameter value is omitted.
The payload also <bcp14>MUST</bcp14> include a key confirmation element (<tt>cnf</tt>) <xref target="RFC8747"/> for the Holder's public key.</t>
      <t>The Issuer <bcp14>SHOULD</bcp14> confirm the Holder controls all confirmation key material before issuing credentials using the <tt>cnf</tt> claim.
If the Issuer does not, it may be communicating with an active attacker impersonating the Holder, instead of the actual Holder.</t>
      <t>CWT <xref target="RFC8392"/> and JWT <xref target="RFC7519"/> register claims and leave their applicability to profiles.
This document instead specifies claim requirements directly, because SD-CWT is a specific credential type whose selective-disclosure and key-binding semantics depend on a small set of claims being present, unredacted, and consistently interpreted across implementations.
The requirements in <xref target="sd-cwt-claims"/> and <xref target="kbt-claims"/> are the minimum needed for interoperable verification; profiles of this specification <bcp14>MAY</bcp14> add further constraints but <bcp14>MUST NOT</bcp14> relax these.</t>
      <t>The following table describes the claim requirements for an SD-CWT:</t>
      <table anchor="sd-cwt-claims">
        <name>SD-CWT Claim Requirements</name>
        <thead>
          <tr>
            <th align="left">Claim</th>
            <th align="left">Requirement</th>
            <th align="left">Never Redacted</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>iss</tt> / 1</td>
            <td align="left">
              <bcp14>MUST</bcp14> unless (see note)</td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>sub</tt> / 2</td>
            <td align="left">
              <bcp14>MUST</bcp14> be present (disclosed or redacted)</td>
            <td align="left">No</td>
          </tr>
          <tr>
            <td align="left">
              <tt>aud</tt> / 3</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>exp</tt> / 4</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>nbf</tt> / 5</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>iat</tt> / 6</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>cti</tt> / 7</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>cnf</tt> / 8</td>
            <td align="left">
              <bcp14>MUST</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>cnonce</tt> / 39</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
        </tbody>
      </table>
      <t>The <tt>iss</tt> claim <bcp14>MUST</bcp14> be present unless the protected header contains a certificate or certificate-like entity that fully identifies the Issuer.</t>
      <t>Any claims not addressed in the tables above are <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</bcp14> be redacted in an SD-CWT, unless specified differently by a profile or more specific media type.</t>
      <t>To further reduce the size of the SD-CWT, a COSE Key Thumbprint (ckt) <xref target="RFC9679"/> <bcp14>MAY</bcp14> be used in the <tt>cnf</tt> claim, if the full public key is expected to be available to Verifiers out-of-band.</t>
      <section anchor="issuer-generation">
        <name>Issuer Generation</name>
        <t>The Issuer follows all the requirements of generating a valid SD-CWT, largely a CWT extended by <xref target="cwt-diffs"/>.
The Issuer <bcp14>MUST</bcp14> implement COSE_Sign1 using an appropriate fully-specified asymmetric signature algorithm (for example, ESP256 or Ed25519).</t>
        <t>The Issuer <bcp14>MUST</bcp14> generate a unique cryptographically random salt with at least 128-bits of entropy for each Salted Disclosed Claim.
If the client communicates a client-generated nonce (<tt>cnonce</tt>) when requesting the SD-CWT, the Issuer <bcp14>MUST</bcp14> include it in the payload.</t>
      </section>
      <section anchor="holder-validation">
        <name>Holder Validation</name>
        <t>Upon receiving an SD-CWT from the Issuer with the Holder as the subject, the
Holder verifies the following:</t>
        <ul spacing="normal">
          <li>
            <t>the issuer (<tt>iss</tt>) and subject (<tt>sub</tt>) are correct;</t>
          </li>
          <li>
            <t>if an audience (<tt>aud</tt>) is present, it is acceptable;</t>
          </li>
          <li>
            <t>the CWT is valid according to the <tt>nbf</tt> and <tt>exp</tt> claims, if present;</t>
          </li>
          <li>
            <t>a public key under the control of the Holder is present in the <tt>cnf</tt> claim;</t>
          </li>
          <li>
            <t>the hash algorithm identified by the <tt>sd_alg</tt> header parameter in the protected headers is supported by the Holder;</t>
          </li>
          <li>
            <t>if a <tt>cnonce</tt> is present, it was provided by the Holder to this Issuer and is still fresh;</t>
          </li>
          <li>
            <t>there are no non-redacted claims about the subject that violate its privacy policies;</t>
          </li>
          <li>
            <t>any place where the cardinality of claims needs to be protected have sufficient decoys (<xref target="decoys"/>);</t>
          </li>
          <li>
            <t>every Redacted Claim Hash has a corresponding Salted Disclosed Claim, and vice versa;
a Salted Disclosed Claim (disclosure) <bcp14>MAY</bcp14> contain additional Redacted Claim Keys nested inside the disclosure;
if any of the Redacted Claim Hashes are nested, the Holder follows the procedure in <xref target="nesting-validation"/> (see also <xref target="nesting"/> for a worked example);</t>
          </li>
          <li>
            <t>the values of the Salted Disclosed Claims when placed in their unredacted context in the payload are acceptable to the Holder.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>A Holder <bcp14>MAY</bcp14> choose to validate the appropriateness or correctness of some or all of the information in a token, should it have the ability to do so, and it <bcp14>MAY</bcp14> choose to not present information to a Verifier that it deems to be incorrect.</t>
          </li>
        </ul>
        <t>The following informative CDDL is provided to describe the syntax for SD-CWT issuance. A complete CDDL schema is in <xref target="cddl"/>.</t>
        <figure anchor="cddl-issued-sd-cwt">
          <name>CDDL describing issued SD-CWT syntax</name>
          <sourcecode type="cddl"><![CDATA[
sd-cwt-issued = #6.18([
   protected: bstr .cbor sd-protected,
   sd-unprotected,
   payload: bstr .cbor sd-payload,
   signature: bstr
])

sd-protected = {
   &(typ: 16) ^ => 293 / "application/sd-cwt",
   &(alg: 1) ^ => int,
   ? &(kid: 4) ^ => bstr,
   ? &(CWT_Claims: 15) ^ => issued_sd_cwt_map,
   ? &(sd_alg: 170) ^ => int,        ; -16 for sha-256
   ? &(sd_aead: 172) ^ => uint .size 2,
   * label => safe_value
}

sd-unprotected = {
   ? &(sd_claims: 17) ^ => salted-array,
   ? &(sd_aead_encrypted_claims: 171) ^ => aead-encrypted-array,
   * label => safe_value
}

sd-payload = {
    ; standard claims
      &(iss: 1) ^ => tstr, ; "https://issuer.example"
    ? &(sub: 2) ^ => tstr, ; "https://holder.example"
    ? &(aud: 3) ^ => tstr, ; "https://verifier.example/app"
    ? &(exp: 4) ^ => secs, ; 1883000000
    ? &(nbf: 5) ^ => secs, ; 1683000000
    ? &(iat: 6) ^ => secs, ; 1683000000
    ? &(cti: 7) ^ => bstr,
      &(cnf: 8) ^ => safe_map, ; key confirmation
    ? &(vct: 11) ^ => bstr,
    ? &(cnonce: 39) ^ => bstr,
    ;
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}

]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="nesting-validation">
      <name>Nesting Validation</name>
      <t>Both Holders and Verifiers validate the SD-CWTs they receive.
The Holder needs a Salted Disclosed Claim for every Redacted Claim in the document (at any level).
The Verifier just needs to match each Salted Disclosed Claim with a Redacted Claim (at any level of the document).
In other words, both Holder and Verifier require a Redacted Claim for every Salted Disclosed Claim; for the Verifier there can be Redacted Claims that do not have matching Salted Disclosed Claims, but for the Holder there needs to be a one-to-one correspondance.</t>
      <t>This matching becomes more involved when there are Redacted Claims inside disclosures.
This "nesting" of Redacted Claims can occur at multiple levels of depth.</t>
      <t>Typically the validating party (Holder or Verifier) would create a lookup table of Salted Disclosed Claims indexed by the Redacted Claim Hash.</t>
      <t>The validating party looks for any Redacted Claim matching a Redacted Claim Hash of the disclosures it has received, and replaces the Redacted Claim with the corresponding disclosed value from the Salted Disclosed Claims.
The validating party then removes the matching Salted Disclosed Claim.
If there are any remaining Redacted Claims that were present before replacing the matching Redacted Claims with the corresponding disclosures, the extraneous claims at the current level are either deleted (in the case of Verifier validation), or the SD-CWT is considered invalid (in the case of Holder validation).</t>
      <t>The newly disclosed claims are then examined for Redacted Claims, and the process repeats.
When there are no Redacted Claims left anywhere in the document, and no Salted Disclosed Claims, the process is complete.</t>
      <t>For a walkthrough of a nested example, see <xref target="nesting"/>.</t>
    </section>
    <section anchor="sd-cwt-presentation">
      <name>SD-CWT Presentation</name>
      <t>When issuing an SD-CWT to a Holder, the Issuer includes all the Salted Disclosed Claims in the unprotected header.</t>
      <t>By contrast, when a Holder presents an SD-CWT to a Verifier, it can disclose none, some, or all of its Redacted Claims.
If the Holder wishes to disclose any Redacted Claims, it includes that subset of its Salted Disclosed Claims in the <tt>sd_claims</tt> header parameter of the unprotected header.
If there is nothing to be disclosed, the <tt>sd_claims</tt> header parameter is omitted.</t>
      <t>The Holder has flexibility in determining the order of disclosures when making presentations.
The order can be sorted, randomized, or optimized for performance based on the Holder's needs.</t>
      <t>An SD-CWT presentation to a Verifier has the same syntax as an SD-CWT issued to a Holder, except the Holder chooses the subset of disclosures included in the <tt>sd_claims</tt> header parameter.</t>
      <ul empty="true">
        <li>
          <t>Since the unprotected header is not included in the Issuer's signature, the list of disclosed claims can differ without invalidating the corresponding signature.</t>
        </li>
      </ul>
      <t>Finally, the SD-CWT used for presentation to a Verifier is included in a Key Binding Token, as discussed in the next section.</t>
      <section anchor="kbt">
        <name>Creating a Key Binding Token</name>
        <t>Regardless if it discloses any claims, the Holder sends the Verifier a unique Holder Key Binding Token (KBT) for every presentation of an SD-CWT to a different Verifier.</t>
        <t>A KBT is itself a type of CWT, signed using the private key corresponding to the key in the <tt>cnf</tt> claim in the presented SD-CWT.
The KBT contains the SD-CWT, including the Holder's choice of presented disclosures, in the <tt>kcwt</tt> protected header field in the KBT.</t>
        <t>The protected header of the KBT <bcp14>MUST</bcp14> include the <tt>typ</tt> header parameter with the unsigned integer value of 294, or the value <tt>application/kb+cwt</tt>.
The Holder <bcp14>SHOULD</bcp14> use the value 294 instead of <tt>application/kb+cwt</tt>, as the CBOR representation is considerably smaller (3 bytes versus 19 bytes).</t>
        <t>The Holder is conceptually both the subject and the Issuer of the Key Binding Token.
Therefore, the <tt>sub</tt> and <tt>iss</tt> of a KBT are implied from the <tt>cnf</tt> claim in the included SD-CWT, and <bcp14>MUST NOT</bcp14> be present in the KBT.
(Profiles of this specification <bcp14>MAY</bcp14> define additional semantics.)</t>
        <t>The <tt>aud</tt> claim <bcp14>MUST</bcp14> be included and <bcp14>MUST</bcp14> correspond to the Verifier.
The KBT payload <bcp14>MUST</bcp14> contain either the <tt>iat</tt> (issued at) claim, or the <tt>cti</tt> (CWT ID) claim.
If the Holder has access to an accurate clock, use of the <tt>iat</tt> is preferred.
The KBT <bcp14>MUST NOT</bcp14> be valid for any time period when its contained SD-CWT is invalid.</t>
        <t>The KBT payload <bcp14>MAY</bcp14> include a <tt>cnonce</tt> claim.
If included, the <tt>cnonce</tt> is a <tt>bstr</tt> provided by the Verifier and <bcp14>MUST</bcp14> be treated as opaque to the Holder.</t>
        <t>The following table describes the claim requirements for a KBT:</t>
        <table anchor="kbt-claims">
          <name>KBT Claim Requirements</name>
          <thead>
            <tr>
              <th align="left">Claim</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>iss</tt> / 1</td>
              <td align="left">
                <bcp14>MUST NOT</bcp14> be present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>sub</tt> / 2</td>
              <td align="left">
                <bcp14>MUST NOT</bcp14> be present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>aud</tt> / 3</td>
              <td align="left">
                <bcp14>MUST</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>iat</tt> / 6</td>
              <td align="left">
                <bcp14>MUST</bcp14> (unless <tt>cti</tt> present)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cti</tt> / 7</td>
              <td align="left">
                <bcp14>MUST</bcp14> (unless <tt>iat</tt> present)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cnonce</tt> / 39</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
          </tbody>
        </table>
        <t>Any claims not addressed in the tables above are <bcp14>OPTIONAL</bcp14> in a KBT, unless specified differently by a profile or more specific media type.</t>
        <t>The KBT provides the following assurances to the Verifier:</t>
        <ul spacing="normal">
          <li>
            <t>the Holder of the SD-CWT controls the confirmation method chosen by the Issuer;</t>
          </li>
          <li>
            <t>the Holder's disclosures have not been tampered with since confirmation occurred;</t>
          </li>
          <li>
            <t>the Holder intended to address the SD-CWT to the Verifier specified in the audience (<tt>aud</tt>) claim;</t>
          </li>
          <li>
            <t>if there are any time claims, the Holder's disclosure is linked to the creation time (<tt>iat</tt>) of the key binding; otherwise the Holder's disclosure is linked to a CWT ID (<tt>cti</tt>), which is expected to be unique per KBT.</t>
          </li>
        </ul>
        <t>The KBT prevents an attacker from copying and pasting disclosures, or from adding or removing disclosures without detection.
Confirmation is established according to <xref target="RFC8747"/>, using the <tt>cnf</tt> claim in the payload of the SD-CWT.</t>
        <t>The Holder signs the KBT using the key specified in the <tt>cnf</tt> claim in the SD-CWT. This proves possession of the Holder's private key.</t>
        <t>The snippet of CDDL below corresponds to the rules above.</t>
        <figure anchor="cddl-kbt">
          <name>CDDL describing KBT syntax</name>
          <sourcecode type="cddl"><![CDATA[
kbt-cwt = #6.18([
   protected: bstr .cbor kbt-protected,
   kbt-unprotected,
   payload: bstr .cbor kbt-payload,
   signature: bstr
])

kbt-protected = {
   &(typ: 16) ^ => 294 / "application/kb+cwt",
   &(alg: 1) ^ => int,
   &(kcwt: 13) ^ => sd-cwt-issued,
   * label => safe_value
}

kbt-unprotected = {
   * label => safe_value
}

kbt-payload = {
      &(aud: 3) ^ => tstr,  ; "https://verifier.example/app"
      time-or-cti-claims,
    ? &(cnonce: 39) ^ => bstr,
    * label => safe_value
}

time-or-cti-claims = (
  ; Requires either time claims that include an iat OR a cti claim.
  ; Note that in CDDL, the // operator has very low precedence (see
  ; Section 2.2.2 of RFC 8610)
  ;
  ; It is possible to have both a cti and time claims, but
  ; time-or-cti-claims insures at least cti or iat is present
  ? &(exp: 4) ^ => secs,
  ? &(nbf: 5) ^ => secs,
    &(iat: 6) ^ => secs  //
    &(cti: 7) ^ => bstr
)
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="binding-validation">
      <name>KBT and SD-CWT Verifier Validation</name>
      <t>To protect against replay attacks, the Verifier <bcp14>SHOULD</bcp14> provide a nonce, and reject requests that do not include an acceptable nonce (cnonce) in the KBT.
This guidance can be ignored in cases where replay attacks are mitigated at another layer.</t>
      <t>The exact order of the following steps <bcp14>MAY</bcp14> be changed, as long as all checks are performed before deciding if an SD-CWT is valid.</t>
      <ol spacing="normal" type="1"><li>
          <t>First the Verifier must open the protected headers of the KBT and find the Issuer SD-CWT present in the <tt>kcwt</tt> field.</t>
        </li>
        <li>
          <t>Next, the Verifier must validate the SD-CWT as described in <xref section="7.2" sectionFormat="of" target="RFC8392"/>. Verifiers <bcp14>MUST</bcp14> treat an <tt>sd_claims</tt> or <tt>sd_aead_encrypted_claims</tt> unprotected Header Parameter with an empty array as invalid.</t>
        </li>
        <li>
          <t>The Verifier checks the time claims in the SD-CWT as follows:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t><tt>nbf</tt> &lt;= <tt>iat</tt> (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> &lt;  <tt>exp</tt> (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> &lt;  <tt>exp</tt> (if both exist)</t>
        </li>
      </ul>
      <ol spacing="normal" type="1" start="4"><li>
          <t>The Verifier extracts the confirmation key from the <tt>cnf</tt> claim in the SD-CWT payload.</t>
        </li>
        <li>
          <t>Using the confirmation key, the Verifier validates the KBT as described in <xref section="7.2" sectionFormat="of" target="RFC8392"/>.</t>
        </li>
        <li>
          <t>If a <tt>cnonce</tt> is present in the KBT it <bcp14>MUST</bcp14> be acceptable to the Verifier.
A <tt>cnonce</tt> <bcp14>MAY</bcp14> be present in SD-CWT, but its validity is considered by the holder, and it <bcp14>MUST NOT</bcp14> be disclosed to the verifier.</t>
        </li>
        <li>
          <t>The Verifier checks the time claims in the KBT to enforce the following logical constraints:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t>if no <tt>cti</tt> claim is present in the KBT, there <bcp14>MUST</bcp14> be an <tt>iat</tt> in the KBT;</t>
        </li>
        <li>
          <t>if there is no <tt>iat</tt> claim in the KBT, there <bcp14>MUST NOT</bcp14> be an <tt>exp</tt> claim or an <tt>nbf</tt> claim in the KBT;</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the KBT &lt;= <tt>iat</tt> in the KBT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &lt;  <tt>exp</tt> in the KBT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the SD-CWT &lt;= <tt>iat</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the SD-CWT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the SD-CWT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>exp</tt> in the KBT &lt;= <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the KBT &gt;= <tt>nbf</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &gt;= <tt>iat</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the KBT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &gt;= <tt>nbf</tt> in the SD-CWT (if both exist)</t>
        </li>
      </ul>
      <ol spacing="normal" type="1" start="8"><li>
          <t>The Verifier <bcp14>MUST</bcp14> extract and decode the disclosed claims from the <tt>sd_claims</tt> header parameter in the unprotected header of the SD-CWT.
Each decoded disclosure is treated as if it is a claim key or claim element at the location corresponding to its Redacted Claim Hash in the payload.
If there are any disclosures that do not have a corresponding Redacted Claim Hash, the entire SD-CWT is invalid.
If any decoded Redacted Claim Key duplicates another claim key in the same position, the entire SD-CWT is invalid.  </t>
          <ul empty="true">
            <li>
              <t>Note: A Verifier <bcp14>MUST</bcp14> be prepared to process disclosures in any order.
A Salted Disclosed Claim (disclosure) <bcp14>MAY</bcp14> contain additional Redacted Claim Keys.
If any Redacted Claim Hashes are nested inside a disclosure, the Verifier follows the procedure in <xref target="nesting-validation"/> (see also <xref target="nesting"/> for a worked example).
A disclosed value could appear before the disclosure of its parent.</t>
            </li>
          </ul>
        </li>
      </ol>
      <ol spacing="normal" type="1" start="9"><li>
          <t>A Verifier <bcp14>MUST</bcp14> reject the SD-CWT if the audience claim in either the SD-CWT or the KBT contains a value that does not correspond to the intended recipient.</t>
        </li>
        <li>
          <t>Otherwise, the SD-CWT is considered valid.
Once any remaining redacted elements (either redacted claims or decoys) are deleted, the Validated Disclosed Claims Set is now a CWT Claims Set with no claims marked for redaction.  </t>
          <ul empty="true">
            <li>
              <t>Note: Undisclosed Redacted Claim Elements will be removed from the Validated Disclosed Claims Set, changing the length of the containing array.
If the semantics of the position of items in the array is important, the issuer should instead disclose or redact the entire array.</t>
            </li>
          </ul>
        </li>
      </ol>
      <ol spacing="normal" type="1" start="11"><li>
          <t>Further validation logic can be applied to the Validated Disclosed Claims Set, just as it might be applied to a validated CWT Claims Set.</t>
        </li>
      </ol>
      <t>By performing these steps, the recipient can cryptographically verify the integrity of the protected claims and verify they have not been tampered with.</t>
    </section>
    <section anchor="decoys">
      <name>Decoy Digests</name>
      <t>An Issuer <bcp14>MAY</bcp14> add additional digests to the SD-CWT payload (including nested maps and arrays within the payload) that are not associated with any claim present in the original Claims Set.
The purpose of such "decoy" digests is to make it more difficult for an adversarial Verifier to infer private information based on the number of Redacted Claim Keys or Redacted Claim Elements.</t>
      <t>The list of disclosures sent by the Issuer to the Holder contains one disclosure for each decoy digest.
Each disclosure contains a single element array with a per-decoy salt.
Each salt <bcp14>MUST</bcp14> be unique.</t>
      <figure anchor="edn-decoy-disc">
        <name>EDN showing a sample decoy salt</name>
        <sourcecode type="cbor-diag"><![CDATA[
<<[ h'C1069BC056E234D64F58BAFF8A7B776B' ]>>
]]></sourcecode>
      </figure>
      <t>The Redacted Claim Hash for each disclosure is calculated using the same algorithm for decoys as for Redacted Claim Keys and Redacted Claim Elements.
An example issued SD-CWT containing decoy digests is shown below.</t>
      <figure anchor="edn-decoys">
        <name>EDN showing a SD-CWT containing decoys</name>
        <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18([  / issuer SD-CWT /
  / CWT protected / << {
    / alg /    1  : -35, / ES384 /
    / kid /    4  : 'https://issuer.example/cose-key3',
    / typ /    16 : 293, # application/sd-cwt
    / sd_alg / 170 : -16  / SHA256 /
  } >>,
  / CWT unprotected / {
    / sd_claims / 17 : [ / these are all the disclosures /
        <<[
            /salt/   h'2bfeab9315829fe0c82a15b2c57a47b2',
            /value/  "fr"   / France /
        ]>>,
        <<[
            /salt/   h'c1069bc056e234d64f58baff8a7b776b',
        ]>>,
        <<[
            /salt/   h'b0392772caefd08178218f86f3e2b3a9',
            /value/  true,
            /claim/  500   / inspection result /
        ]>>,
        <<[
            /salt/   h'89c41c270dd06cd3517d371c9ddf2bab',
        ]>>,
    ]
  },
  / CWT payload / << {
    / iss / 1   : "https://issuer.example",
    / sub / 2   : "https://holder.example",
    / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
    / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
    / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
    / cnf / 8   : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /countries array/ 98: [
        /redacted country == "fr" /
        60(h'dc5f753b66acd89d78481039934a86cc
             14f9959c64c4037dea3f872b9a8453f1')
        /decoy country #1 /
        60(h'3f80963a1246b412d6567f2a5ca446fd
             19a01dd8cfc291bed69e8c575c5abfb8')
    ],
    / redacted_claim_keys / simple(59) : [
        / redacted claim 500 (== true) /
        h'bd0fd88127b3071ff5433eef59a5e3c5
          f18341f25c5bd119c41fd34802a9797b'
        / decoy claim #2 /
        h'eeec970897a5b9108f24f44751baedab
          b53a1f3d241ab6b60c9f309f114ecf88'
    ]
  } >>,
  / CWT signature / h'a96d92f340e37ab56586c74f237a50ef
                      bf176f7326a88a5429084a283b82a514
                      27753805febd98987c13f8a41586feda
                      df507e98d6d26af6f09eb01d0f4a5644
                      fdd05e7bac083338c7a8770a68896df3
                      c2f79e5450fd19f5dbbd1868898e984b'
])
]]></sourcecode>
      </figure>
      <t>As with regular Redacted Claims, the Holder needs to receive the disclosure for every decoy so it can be sure the Issuer is not communicating unwanted information to Verifiers (see <xref target="disclosure-of-decoys"/>).</t>
    </section>
    <section anchor="tags-used-before-sd-cwt-issuance">
      <name>Tags Used Before SD-CWT Issuance</name>
      <t>This section describes the semantics of two CBOR tags that are (optionally) only used to convey information to the Issuer about disclosures to create.</t>
      <section anchor="tbr-tag">
        <name>To Be Redacted Tag Definition</name>
        <t>In order to indicate specific claims that the Holder would like to be redacted in a Claims Set, this specification defines a new CBOR tag "To Be Redacted".
The tag can be used by a library to automatically convert a Claims Set with "To Be Redacted" tags into a) a new Claims Set containing Redacted Claim Keys and Redacted Claim Elements replacing the tagged claim keys or claim elements, and b) a set of corresponding Salted Disclosed Claims.</t>
        <t>When used on an element in an array, the value to be redacted is present inside the tag.
When used on a map key and value, the tag is placed around the map key, while the map value remains.</t>
        <t>Examples in this draft use the To Be Redacted tag in order to distinguish their pre-issued, post-issued, and post-presented representations in EDN and CDDL.
The snippet of EDN shown below shows one mechanism to communicate to the Issuer to redact the inspector license number claim, and two of the inspection dates in our primary example.</t>
        <figure anchor="edn-to-be-blinded">
          <name>EDN example requesting redaction of license number and two inspection dates</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  ...
  58(501): "ABCD-123456",   # redact inspector license number claim
  /inspection dates/ 502: [
    58(1549560720),         # redact 07-Feb-2019
    58(1612560720),         # redact 04-Feb-2021
    1674004740              # don't redact 17-Jan-2023
  ]
  ...
}
]]></sourcecode>
        </figure>
        <t>As discussed in <xref target="dup-map-key"/>, a map key <tt>k</tt> and a map key 58 containing the value <tt>k</tt> are considered duplicate map keys.
An Issuer <bcp14>MUST NOT</bcp14> issue an SD-CWT if the pre-issued Claims Set contains duplicate map keys.</t>
      </section>
      <section anchor="tb-decoy-tag">
        <name>To Be Decoy</name>
        <t>In order to indicate a location that should contain a decoy digest <xref target="decoys"/> in the issued SD-CWT, this specification defines a new CBOR tag "To Be Decoy".
This tag can be used by a library to automatically a) add a decoy digest at a particular location in an array, or at a particular level in a map; and b) create the corresponding Salted Disclosed Claims.
The value inside is a positive integer that <bcp14>MUST</bcp14> be unique for each decoy location within the SD-CWT.
The integer could be used to look up the salt for the decoy deterministically, but does not impose any ordering.
When a decoy digest is requested in a map, the map <em>value</em> is always <tt>null</tt>.</t>
        <aside>
          <t>Note: Requiring an integer that is unique per decoy within the entire CWT ensures that there are no duplicate map keys in the Claims Set (see <xref section="5.6" sectionFormat="of" target="RFC8949"/>).</t>
        </aside>
        <t>An Issuer <bcp14>MUST NOT</bcp14> issue an SD-CWT if the pre-issued Claims Set contains duplicate map keys.</t>
        <t>In the example fragment below, the transit countries claim contains an array of countries.
The Claim Elements array contains Germany (de) and the Philippines (ph).
The Holder wants to redact each country, but add decoys to obfuscate the number of component origin countries.
The example fragment also shows two decoy digests in the same map.</t>
        <figure anchor="edn-to-be-decoy">
          <name>EDN example requesting two decoys</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  ...
  /component origin countries/ 607: [
    58("de"),
    58("ph"),
    62(1),      # add two decoys in this array
    62(2)
  ],
  62(3): null,  # add a decoy in this map
  62(4): null,  # add a second decoy in the same map
  ...
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="encrypted-disclosures">
      <name>Encrypted Disclosures</name>
      <t>The RATS architecture <xref target="RFC9334"/> defines a model where the Verifier is split into separate entities, with an initial verifier called an Attester, and a target entity called a Relying Party.
Other protocols have a similar type of internal structure for the Verifier.</t>
      <t>In some of these use cases, there is existing usage of AES-128 GCM and other Authenticated Encryption with Additional Data (AEAD) <xref target="RFC5116"/> algorithms.</t>
      <t>This section describes how to use AEADs to encrypt disclosures to a target entity, while enabling a initial verifier to confirm the authenticity of the presentation from the Holder.</t>
      <t>In these systems, an appropriate symmetric key and its context are provided completely out-of-band.</t>
      <t>The entire SD-CWT is included in the protected header of the KBT, which secures the entire Issuer-signed SD-CWT including its unprotected headers that include its disclosures.</t>
      <t>The Issuer <bcp14>MUST</bcp14> make the plaintext Salted Disclosed Claims of all Redacted Claims available to the Holder by placing them in the unprotected header in the <tt>sd_claims</tt> header parameter.
The Holder <bcp14>MAY</bcp14> then chose to encrypt some of these Salted Disclosed Claims, omit the plaintext versions from the <tt>sd_claims</tt> unprotected header field, and add the corresponding encrypted disclosures to the <tt>sd_aead_encrypted_claims</tt> unprotected header field.
The Holder finally signs the KBT containing all intended disclosures of either type.</t>
      <t>The initial Verifier of the KBT might not be able to decrypt encrypted disclosures and <bcp14>MAY</bcp14> decide to forward them to an inner Verifier that can decrypt them.</t>
      <section anchor="aead">
        <name>AEAD Encrypted Disclosures Mechanism</name>
        <t>This section defines two new COSE Header Parameters.
If present in the protected headers, the first header parameter (<tt>sd_aead</tt>) specifies an Authenticated Encryption with Additional Data (AEAD) algorithm <xref target="RFC5116"/> registered in the <eref target="https://www.iana.org/assignments/aead-parameters/aead-parameters.xhtml">IANA AEAD Algorithms registry</eref> .
(Guidance on specific algorithms is discussed in <xref target="aead-choice"/>.)
The second header parameter (<tt>sd_aead_encrypted_claims</tt>), if present, contains a non-empty list of AEAD encrypted disclosures.
Taking the first example disclosure from <xref target="first-disclosure"/>:</t>
        <figure anchor="edn-aead-disclosure">
          <name>EDN example of plaintext disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
]]></sourcecode>
        </figure>
        <t>The corresponding bstr is encrypted with an AEAD algorithm <xref target="RFC5116"/>.
If present, the algorithm of the <tt>sd_aead</tt> protected header field is used, or AEAD_AES_128_GCM if no algorithm was specified.
The bstr is encrypted with a unique, random nonce of N_MIN octets.
The associated (authenticated) data <tt>A</tt> is zero-length.
The AEAD ciphertext consists of its encryption algorithm's ciphertext and its authentication tag.
(For example, in AEAD_AES_128_GCM the authentication tag is 16 octets.)
The nonce (<tt>nonce</tt>), the encryption algorithm's ciphertext (<tt>ciphertext</tt>) and authentication tag (<tt>tag</tt>) are put in an array.</t>
        <t>Optionally an AEAD key context <bcp14>MAY</bcp14> be added to the array.
The key context can be an unsigned integer, a text string, or a byte string of the COSE Key Thumbprint (<xref target="RFC9679"/>) of the decryption key.</t>
        <t>The resulting array is placed in the <tt>sd_aead_encrypted_claims</tt> header parameter in the unprotected headers of the SD-CWT.</t>
        <t>Given the AEAD encryption key (in hexadecimal):</t>
        <artwork><![CDATA[
a061c27a3273721e210d031863ad81b6
]]></artwork>
        <t>A valid AEAD encrypted disclosure for that first disclosure is:</t>
        <figure anchor="edn-aead-claim">
          <name>EDN Example of an AEAD Encrypted Disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ sd_aead_encrypted_claims / 171 : [ / AEAD encrypted disclosures /
[
    / nonce /      h'95d0040fe650e5baf51c907c',
    / ciphertext / h'563a7d9f0f65d40b751fbc3fcc408e8f
                     e27c375b60a4727b1f1e9572c07992eb
                     5ec5a9',
    / tag /        h'9f4d37da32187528416ed7ee95e0625f'
],
    ...
]
]]></sourcecode>
        </figure>
        <t>The Redacted Claim Hash is still over the unencrypted disclosure.
The receiver of an AEAD encrypted disclosure determines the appropriate decryption key by local configuration, using the <tt>aead-key-context</tt> if present, or by looking up the authentication tag.</t>
        <ul empty="true">
          <li>
            <t>Which key determination mechanism to use is the responsibility of the relevant profile or enclosing protocol.</t>
          </li>
        </ul>
        <t>If the Verifier is able to decrypt and verify an encrypted disclosure, the decrypted disclosure is then processed as if it were in the <tt>sd_claims</tt> header parameter in the unprotected headers of the SD-CWT.</t>
        <t>Details of key management are left to profiles of the specific protocols that make use of AEAD encrypted disclosures.</t>
        <t>The CDDL for AEAD encrypted disclosures is below.</t>
        <figure anchor="cddl-aead">
          <name>CDDL describing syntax of AEAD Encrypted disclosures</name>
          <sourcecode type="cddl"><![CDATA[
aead-encrypted-array = [ +aead-encrypted ]
aead-encrypted = [
  bstr,              ; nonce of N_MIN octets
  bstr,              ; the encryption ciphertext output of a
                     ;   bstr-encoded-salted
  bstr,              ; the corresponding authentication tag
  ?aead-key-context  ; optional context to select the correct key
]
aead-key-context = uint / tstr / thumbprint
thumbprint = bstr    ; a COSE key thumprint
]]></sourcecode>
        </figure>
        <ul empty="true">
          <li>
            <t>Note: Because the encryption algorithm is in a registry that contains only AEAD algorithms, an attacker cannot replace the algorithm or the message, without a decryption verification failure.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="cred-types">
      <name>Credential Types</name>
      <t>This specification defines the CWT claim <tt>vct</tt> (for Verifiable Credential Type).
The <tt>vct</tt> value is an identifier for the type of the SD-CWT Claims Set.
Like the <tt>typ</tt> header parameter <xref target="RFC9596"/>, its value can be either a string or an integer.
For size reasons, it is <bcp14>RECOMMENDED</bcp14> that the numeric representation be used.</t>
      <t>If its value is a string, it is a case-sensitive StringOrURI, as defined in <xref target="RFC7519"/>.
In this case, the <tt>vct</tt> string <bcp14>MUST</bcp14> either be registered in the
IANA "Verifiable Credential Type Identifiers" registry
established in <xref target="vct-registry"/>,
or be a Collision-Resistant Name, as defined in Section 2 of <xref target="RFC7515"/>.</t>
      <t>If its value is an integer, it is either a value in the range 0-64999 registered in
the IANA "Verifiable Credential Type Identifiers" registry
established in <xref target="vct-registry"/>
or an  Experimental Use value in the range 65000-65535,
which is not to be used in operational deployments.</t>
      <t>This claim is defined for COSE-based verifiable credentials, similar to the JOSE-based verifiable credentials claim (<tt>vct</tt>) described in Section 3.2.2.1.1 of <xref target="I-D.draft-ietf-oauth-sd-jwt-vc"/>.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="minimal-spanning-example">
        <name>Minimal Spanning Example</name>
        <t>The following example contains claims needed to demonstrate redaction of key-value pairs and array elements.</t>
        <figure anchor="example-edn">
          <name>A minimal, full EDN Example</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18( / sd_kbt / [
  / KBT protected / << {
    / alg /    1:  -7, / ES256 /
    / kcwt /  13:  18([  / issuer SD-CWT /
      / CWT protected / << {
        / alg /    1  : -35, / ES384 /
        / kid /    4  : 'https://issuer.example/cose-key3',
        / typ /    16 : 293, # application/sd-cwt
        / sd_alg / 170 : -16  / SHA256 /
      } >>,
      / CWT unprotected / {
        / sd_claims / 17 : [ / these are the disclosures /
            <<[
                /salt/   h'bae611067bb823486797da1ebbb52f83',
                /value/  "ABCD-123456",
                /claim/  501   / inspector_license_number /
            ]>>,
            <<[
                /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
                /value/  1549560720   / inspected 7-Feb-2019 /
            ]>>,
            <<[
                /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
                /value/  "ca",
                /claim/  "region"   / region=California /
            ]>>,
        ]
      },
      / CWT payload / << {
        / iss / 1   : "https://issuer.example",
        / sub / 2   : "https://holder.example",
        / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
        / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
        / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
        / cnf / 8   : {
          / cose key / 1 : {
            / kty /  1: 2,  / EC2   /
            / crv / -1: 1,  / P-256 /
            / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                          2022fd0d3024b5af18c7cc61ad527a2d',
            / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                          503f54293d87875d1e79ce4770194343'
          }
        },
        /most_recent_inspection_passed/ 500: true,
        /inspection_dates/ 502 : [
            / redacted inspection date 7-Feb-2019 /
            60(h'1b7fc8ecf4b1290712497d226c04b503
                 b4aa126c603c83b75d2679c3c613f3fd'),
            / redacted inspection date 4-Feb-2021 /
            60(h'64afccd3ad52da405329ad935de1fb36
                 814ec48fdfd79e3a108ef858e291e146'),
            1674004740,   / 2023-01-17T17:19:00 /
        ],
        / inspection_location / 503 : {
            "country" : "us",            / United States /
            / redacted_claim_keys / simple(59) : [
                / redacted region /
                h'0d4b8c6123f287a1698ff2db15764564
                  a976fb742606e8fd00e2140656ba0df3'
                / redacted postal_code /
                h'c0b7747f960fc2e201c4d47c64fee141
                  b78e3ab768ce941863dc8914e8f5815f'
          ]
        },
        / redacted_claim_keys / simple(59) : [
            / redacted inspector_license_number /
            h'af375dc3fba1d082448642c00be7b2f7
              bb05c9d8fb61cfc230ddfdfb4616a693'
        ]
      } >>,
      / CWT signature / h'12bdb0136ed93db0e3400660d5aee1ba
                          68ff24e743d613eea55d3bedff167ae4
                          d3c9c328ebfdc1793a178e754ce11432
                          f2e69a92eee6953d38d5a58830ece550
                          21951a83e4e30365828bb7918ceb187a
                          21da18c071ce2461ef642a9e7959299e'
    ]),
    / end of issuer SD-CWT /
    / typ /   16:  294   # application/kb+cwt,
  } >>,     / end of KBT protected header /
  / KBT unprotected / {},
  / KBT payload / << {
    / aud    /  3    : "https://verifier.example/app",
    / iat    /  6    : 1725244237, / 2024-09-02T02:30:37+00:00Z /
    / cnonce / 39    : h'8c0f5f523b95bea44a9a48c649240803'
  } >>,      / end of KBT payload /
  / KBT signature / h'ca38c411693201ceb418ab75217745cc
                      f1d52f76c934ce2910a9f4ccc4293711
                      f9ee18347b51f6f815d89b77d407e494
                      5551118df8f9b662e5250fb1c5f070c8'
])   / end of kbt /
]]></sourcecode>
        </figure>
      </section>
      <section anchor="nesting">
        <name>Nested Example</name>
        <t>Instead of the structure from the previous example, imagine that the payload contains an inspection history log with the following structure. It could be redacted at multiple levels of the claims set hierarchy.</t>
        <figure anchor="edn-nested-unblinded">
          <name>EDN example of Nested Claims Set before redaction</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : { ... },
    504: [                      / inspection history log /
        {
            500: true,          / inspection passed /
            502: 1549560720,    / 2019-02-07T17:32:00 /
            501: "DCBA-101777", / inspector license /
            503: {
                1: "us",        / United States /
                2: "co",        / region=Colorado /
                3: "80302"      / postcode /
            }
        },
        {
            500: true,          / inspection passed /
            502: 1612560720,    / 2021-02-04T20:14:00 /
            501: "EFGH-789012", / inspector license /
            503: {
                1: "us",        / United States /
                2: "nv",        / region=Nevada /
                3: "89155"      / postcode /
            }
        },
        {
            500: true,          / inspection passed /
            502: 17183928,      / 2023-01-17T17:19:00 /
            501: "ABCD-123456", / inspector license /
            503: {
                1: "us",        / United States /
                2: "ca",        / region=California /
                3: "94188"      / postcode /
            }
        }
    ]
}
]]></sourcecode>
        </figure>
        <t>For example, looking at the nested disclosures below, the first disclosure reveals the entire January 2023 inspection record.
However, when the record is disclosed, the inspector license number and inspection location are still redacted inside the record.
The fifth disclosure reveals the inspector_license_number, and the fourth
disclosure reveals the inspection location record, but the region and postcode claims inside the location record are also individually redacted.
The second disclosure reveals the inspection region.</t>
        <t>The last disclosure reveals the earliest inspection record, and the sixth disclosure reveals the inspector_license_number for that record.</t>
        <t>Verifiers start replacing each Redacted Claim Hash whose hash matches a Salted Disclosed Claim, with the unredacted Claim Key or Claim Value from that Salted Disclosed Claim.
They continue descending until there are no Redacted Claim Hashes at any level of the hierarchy for which they have a corresponding disclosure.
A walkthrough of processing an example with nested disclosures is in <xref target="nesting-walkthrough"/>.</t>
        <figure anchor="edn-nested-blinded">
          <name>EDN Example of SD-CWT with Nested Redacted Claims</name>
          <sourcecode type="cbor-diag"><![CDATA[
    / sd_claims / 17 : [ / these are the disclosures /
        <<[
            /salt/   h'cd99b3858f1d659f9d16039abf8c5fba',
            /value/  {
                         500: true,
                         502: 1674004740,
                         simple(59): [
                         h'af375dc3fba1d082448642c00be7b2f7
                           bb05c9d8fb61cfc230ddfdfb4616a693',
                         h'9d151abeb800adcc11ff10ff61fbd3d7
                           5944c134b40a24abef1787d3ae6583aa'
                     ]
                     }   / inspection 17-Jan-2023 /
        ]>>,         / Redacted Claim Hash begins 20d9bb11 /
        <<[
            /salt/   h'52da9de5dc61b33775f9348b991d3d78',
            /value/  "ca",
            /claim/  2   / region=California /
        ]>>,         / Redacted Claim Hash begins 2470fb91 /
        <<[
            /salt/   h'591eb2081b05be2dcbb6f8459cc0fe51',
            /value/  "DCBA-101777",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 7257a869 /
        <<[
            /salt/   h'483e4b3c194df6073a9c41ca9f274067',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'2470fb9175b062c347ab3c3a19776d02
                           476112a17cd7cfc9416664bc058c220b',
                         h'cf397a08917528624ca3b332c9edcc54
                           a72c9411dd5983f68017ce160f709f52'
                     ]
                     },
            /claim/  503   / San Francisco location /
        ]>>,         / Redacted Claim Hash begins 9d151abe /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins af375dc3 /
        <<[
            /salt/   h'c23a4d192be75dbd583be570482de8dd',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'1b89717167f39d51eec08b13baeda570
                           eff5d0aedaa1d7d0821185c33634a5a0',
                         h'49412884fa1e3787c17d1320bdd48f6e
                           0e5365da010cde0571d4a7effd13cc2a'
                     ]
                     },
            /claim/  503   / Denver location /
        ]>>,         / Redacted Claim Hash begins c24c646b /
        <<[
            /salt/   h'2df7d2c105b5bf3acf9c698f3658552f',
            /value/  {
                         500: true,
                         502: 1549560720,
                         simple(59): [
                         h'7257a8697dfa40221079b00fb65fe587
                           c310e6ca3da1aa33b090335de66ec810',
                         h'c24c646b52fecd773c6ea01c6caa5a73
                           422b85d3afa5900fa998336d83a88025'
                     ]
                     }   / inspection 7-Feb-2019 /
        ]>>,         / Redacted Claim Hash begins ca6b8516 /
    ]
]]></sourcecode>
        </figure>
        <t>After applying the disclosures of the nested structure above, the disclosed Claims Set visible to the Verifier would look like the following:</t>
        <figure anchor="edn-validated">
          <name>EDN of validated nested claims</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : { ... },
    504: [                      / inspection history log /
        {
            500: true,          / inspection passed /
            501: "DCBA-101777", / inspector license /
            502: 1549560720,    / 2019-02-07T17:32:00 /
            503: {
                1: "us"         / United States /
            }
        },
        {
            500: true,          / inspection passed /
            501: "ABCD-123456", / inspector license /
            502: 17183928,      / 2023-01-17T17:19:00 /
            503: {
                1: "us",        / United States /
                2: "ca"         / region=California /
            }
        }
    ]
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>This section describes the privacy considerations in accordance with the recommendations from <xref target="RFC6973"/>.
Many of the topics discussed in <xref target="RFC6973"/> apply to SD-CWT, but are not repeated here.</t>
      <section anchor="correlation-and-linkability">
        <name>Correlation and Linkability</name>
        <t>The term linkability or unlinkability applies to presentations of SD-CWT in the same ways that it applies to SD-JWT as described in <xref section="10.1" sectionFormat="of" target="RFC9901"/>.</t>
        <t>SD-CWT cannot prevent Issuer-Verifier linkability.
Any presentation of an SD-CWT can be correlated with its issuance if an Issuer and Verifier cooperate.
In cases where the Issuer is part of the privacy threat model, a different mechanism than SD-CWT is needed.</t>
        <t>Presentations of the same SD-CWT to multiple Verifiers can be correlated by matching on the signature component of the COSE_Sign1.
That is, SD-CWT does not naturally provide Verifier-Verifier unlinkability.
Verifier-Verifier unlinkability can be achieved by requesting a fresh, uncorrelated copy of the credential for each presentation, at a credential management complexity cost.
This assumes that the revealed claims do not contain information that could enable Verifiers to correlate presentations.
If the claims, or the timing or structure of their presentation, leak correlatable information, then fresh copies of credentials may be insufficient.
SD-CWT is designed to mitigate such leakage; however, implementers must ensure that no leakage occurs (for example, by appropriately using decoy digests, see <xref target="decoys"/>).</t>
        <t>Any Claim Value that pertains to a sufficiently small set of subjects can be used to facilitate tracking the subject.
For example, a high precision issuance time might match the issuance of only a few credentials for a given Issuer, and as such, any presentation of a credential issued at that time can be determined to be associated with the set of credentials issued at that time, for those subjects.</t>
      </section>
      <section anchor="determinism">
        <name>Determinism</name>
        <t>It is possible for the Issuer to encode additional information through the choices made during the serialization stage of producing an SD-CWT, for example, by adjusting the order of CBOR map keys, by choosing different numeric encodings for certain data elements, or by incorporating fewer or more decoys (see <xref target="decoys"/>).
Likewise the Holder can encode information in the KBT.
<xref section="B" sectionFormat="of" target="I-D.ietf-cbor-serialization"/> provides guidance for constructing application profiles that further constrain CBOR encoding.
The construction of such profiles has a significant impact on the privacy properties of a credential type.</t>
      </section>
      <section anchor="audience">
        <name>Audience</name>
        <t>If the audience claim is present in both the SD-CWT and the KBT, they are not required to be the same.
SD-CWTs with audience claims that do not correspond to the intended recipients <bcp14>MUST</bcp14> be rejected, to protect against accidental disclosure of sensitive data.</t>
      </section>
      <section anchor="credential-types">
        <name>Credential Types</name>
        <t>The privacy implications of selective disclosure vary significantly across different credential types due to their inherent characteristics and intended use cases.
The non-redacted and optional-to-disclose data elements in an SD-CWT must be carefully chosen based on the specific privacy risks associated with each credential type.</t>
        <t>For example, a passport credential contains highly sensitive personal information where even disclosure of a subset of its claims can have significant privacy implications:</t>
        <ul spacing="normal">
          <li>
            <t>Revealing citizenship status may expose an individual to discrimination</t>
          </li>
          <li>
            <t>Date of birth combined with any other attribute enables age-based profiling</t>
          </li>
          <li>
            <t>Biometric data, even if selectively disclosed, presents irreversible privacy risks</t>
          </li>
          <li>
            <t>The mere possession of a passport from certain countries can be sensitive information</t>
          </li>
        </ul>
        <t>In contrast, a legal entity certificate has fundamentally different privacy considerations:</t>
        <ul spacing="normal">
          <li>
            <t>The entity's legal name and registration number are often public information</t>
          </li>
          <li>
            <t>Business addresses and contact details may already be in public registries</t>
          </li>
          <li>
            <t>Authorized signatories' names might be required for legal validity</t>
          </li>
          <li>
            <t>The primary concern is often business confidentiality rather than personal privacy</t>
          </li>
        </ul>
        <t>These differences mean that:</t>
        <ul spacing="normal">
          <li>
            <t>Passport credentials should minimize non-redacted claims and maximize holder control over optional elements</t>
          </li>
          <li>
            <t>Legal entity certificates might reasonably require disclosure of more fields to establish business legitimacy</t>
          </li>
          <li>
            <t>The granularity of selective disclosure should match the credential type's privacy sensitivity</t>
          </li>
          <li>
            <t>Default disclosure sets must be carefully calibrated to each credential's risk profile</t>
          </li>
        </ul>
        <t>Several distinct credential types might be applicable to a given use case, each with unique privacy trade-offs.
Issuers <bcp14>MUST</bcp14> perform a comprehensive privacy and confidentiality assessment for each credential type they intend to issue, considering:</t>
        <ul spacing="normal">
          <li>
            <t>The sensitivity spectrum of contained attributes</t>
          </li>
          <li>
            <t>Likely disclosure scenarios and their privacy impacts</t>
          </li>
          <li>
            <t>Correlation risks when attributes are combined</t>
          </li>
          <li>
            <t>Long-term privacy implications of disclosed information</t>
          </li>
          <li>
            <t>Cultural and jurisdictional privacy expectations</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Security considerations from COSE <xref target="RFC9052"/> and CWT <xref target="RFC8392"/> apply to this specification.</t>
      <section anchor="issuer-key-compromise">
        <name>Issuer Key Compromise</name>
        <t>Verification of an SD-CWT requires that the Verifier have access to a verification key (public key) associated with the Issuer.
Compromise of the Issuer's signing key would enable an attacker to forge credentials for any subject, potentially undermining the entire trust model of the credential system.
Beyond key compromise, an attacker might seek to attack the process by which a Verifier obtains the public keys of Issuers.
An attacker who can manipulate the process by which a Verifier obtains information about Issuer public keys could substitute their own keys, enabling credential forgery while appearing to be a trusted Issuer.</t>
      </section>
      <section anchor="disclosure-coercion">
        <name>Disclosure Coercion and Over-identification</name>
        <t>The Security Considerations from <xref section="10.2" sectionFormat="of" target="RFC9901"/> apply, with additional attention to disclosure coercion risks.
Holders can be pressured to disclose more claims than are necessary for a given transaction.
This risk is heightened when a Verifier does not provide adequate data protection practices, when disclosed attributes derive from highly trusted authorities (for example, government-issued credentials), and because disclosure is effectively irreversible once data has been shared.</t>
        <t>Mitigations include mechanisms by which Verifiers demonstrate eligibility to receive sensitive claims, Holder-side evaluation of Verifier compliance posture and certifications, and use of trust lists curated by trusted parties to identify responsible Verifiers.
In the absence of such safeguards, including Verifier trust lists, Holders remain exposed to over-identification and long-term misuse of disclosed information.</t>
        <t>Implementers deploying SD-CWT in credential systems should review <xref target="W3CTAG-Credential-Abuse"/>,
which discusses broader risks of credential abuse including surveillance, exclusion, and overuse.</t>
      </section>
      <section anchor="disclosure-of-decoys">
        <name>Disclosure of Decoys</name>
        <t>Issuers control the claimset and may include decoy digests to obscure the number of claims in a credential.
Unless all decoy disclosures are made available to Holders, an Issuer could use this mechanism to hide claims from Holders without their knowledge.
A Holder receiving a credential with undisclosed decoys cannot distinguish between a digest that conceals a real claim and one that is genuinely a decoy.
This creates a severe privacy risk: an Issuer could embed hidden claims — such as behavioral flags, risk scores, or sensitive attributes — that Verifiers can later be given selective access to, without the Holder's awareness or consent.</t>
      </section>
      <section anchor="random-numbers">
        <name>Random Numbers</name>
        <t>Each salt used to protect disclosed claims <bcp14>MUST</bcp14> be generated independently.
Identical salt values, or values that can be correlated, might allow a Verifier to recover redacted values that were not disclosed.</t>
        <t>The salts <bcp14>MUST</bcp14> be generated using fresh randomness or from a source that has outputs cannot be predicted by any potential Verifier.
Poor choice of salts can lead to brute force attacks that can reveal redacted claims.</t>
      </section>
      <section anchor="binding-the-kbt-and-the-cwt">
        <name>Binding the KBT and the CWT</name>
        <t>The "iss" claim in the SD-CWT is self-asserted by the Issuer.</t>
        <t>Because confirmation is mandatory, the subject claim of an SD-CWT, when present, is always related directly to the confirmation claim.
There might be many subject claims and many confirmation keys that identify the same entity or that are controlled by the same entity, while the identifiers and keys are distinct values.
Reusing an identifier or key enables correlation, but needs to be evaluated in terms of the confidential and privacy constraints associated with the credential type.
Conceptually, the Holder is both the Issuer and subject of the KBT, and the subject of the SD-CWT.
Presence of an "iss" or "sub" claim in the KBT would be superfluous, so they <bcp14>MUST NOT</bcp14> be present.</t>
        <t>As with any self-assigned identifiers, Verifiers need to take care to verify that the KBT "iss" and "sub" claims match the subject in the KBT, and are a valid representation of the Holder and correspond to the Holder's confirmation key.
Extra care should be taken in case the SD-CWT subject claim is redacted.</t>
        <t>Likewise, Holders and Verifiers need to verify that the "iss" claim of the SD-CWT corresponds to the Issuer and the key described in the protected header of the SD-CWT.
If the Holder does not verify the "iss" claim in the SD-CWT, an active attacker could be inserted between the Issuer and the Holder.
If the Verifier does not verify the "iss" claim in the SD-CWT, there is no assurance that the Holder is authentic.</t>
        <t>Finally, the Verifier needs to verify that the time claims in both the SD-CWT and KBT are self-consistent and that the KBT is not valid for any period of time when the SD-CWT is not.
Specific tests for time claims are described in steps 3 and 6 of <xref target="binding-validation"/>.</t>
      </section>
      <section anchor="revocation-and-status-lists">
        <name>Revocation and Status Lists</name>
        <t>Currently, CWTs do not have a standard notion of revocation in the same way that <xref target="RFC5280"/> has Certificate Revocation Lists to invalidate X.509 certificates.
CWTs and JWTs do have a notion of status lists <xref target="I-D.ietf-oauth-status-list"/>.
If an SD-CWT is using <xref target="I-D.ietf-oauth-status-list"/>, the status check should be confirmed after the KBT is verified, to protect the verifier from accessing network resources specified in forged tokens.
It does not make sense to apply status lists to KBTs.</t>
      </section>
      <section anchor="covert-channels">
        <name>Covert Channels</name>
        <t>Any data element that is supplied by the Issuer, and that appears random to the Holder might be used to produce a covert channel between the Issuer and the Verifier.
The ordering of claims, and precision of timestamps can also be used to produce a covert channel.
This is more of a concern for SD-CWT than typical CWTs, because the Holder is usually considered to be aware of the Issuer claims they are disclosing to a Verifier.</t>
      </section>
      <section anchor="use-of-authenticated-encryption-for-encrypted-disclosures">
        <name>Use of authenticated encryption for encrypted disclosures</name>
        <t>This section provides justification of the choice of AEAD (or generally authenticated) algorithms for encrypted disclosures in SD-CWT versus unauthenticated encryption.</t>
        <ol spacing="normal" type="1"><li>
            <t>AEAD algorithms (especially AES_GCM) are among the most widely available cryptographic algorithms.
Implementations of these algorithms are generally well tested and documented across a wide range of environments and programming environments, and often benefit from hardware accelleration.
Unauthenticated algorithms are less widely available and are often only available in "subtle" cryptographic interfaces.
Use of a mainstream AEAD algorithm is less likely to trigger false alarms in security audits than unauthenticated encryption algorithms.</t>
          </li>
          <li>
            <t>Since SD-CWTs support nested disclosures, a Verifier may need to decrypt and process disclosures from an honest Holder at multiple depths to find the Salted Disclosed Claim and Redacted Claim Hash associated with a specific Redacted Claim.
Using an authenticated algorithm allows the Verifier to determine immediately if a specific decryption succeeded or failed.
It also prevents the Verifier from keeping state for encrypted disclosures that were not correctly decrypted.
Knowing exactly when decryption fails makes troubleshooting easier, and error handling more straightforward to implement.</t>
          </li>
          <li>
            <t>The amount of time</t>
          </li>
          <li>
            <t>In the target environments (ex: RATS), the performance penalty of using authenticated encryption is minor compared the other cryptographic operations already in use in those environments.
Reuse of cryptographic algorithms compatible with existing profiles and cipher suites was considered more important than the performance gain of using unauthenticated encryption.</t>
          </li>
          <li>
            <t>If desired by the community, it is possible to add an unauthenticated encryption mode (with appropriate guidance) as a future extension.</t>
          </li>
        </ol>
      </section>
      <section anchor="aead-choice">
        <name>Choice of AEAD algorithms</name>
        <t>The AEAD encrypted disclosures mechanism discussed in <xref target="aead"/> can refer to any AEAD alogithm in the <eref target="https://www.iana.org/assignments/aead-parameters/aead-parameters.xhtml">IANA AEAD Algorithms registry</eref> .</t>
        <t>When choosing an AEAD algorithm, the tag length is relevant to the integrity of encrypted disclosures in SD-CWT before the corresponding plaintext can be hashed and matched to a Redacted Claim.
As such, implementations <bcp14>MUST NOT</bcp14> use any AEAD algorithm with a tag length less than 16 octets.</t>
        <t>Algorithms using AES-CCM are <bcp14>NOT RECOMMENDED</bcp14>.</t>
        <t>As of this writing, implementations <bcp14>MUST NOT</bcp14> use algorithms 3 through 14, 18, 19, 21, 22, 24, 25, 27, or 28.
Implementations using the AEGIS algorithms containing an X <bcp14>MUST</bcp14> only use the 256-bit tag variant.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cose-header-parameters">
        <name>COSE Header Parameters</name>
        <t>IANA is requested to add the following entries to the <eref target="https://www.iana.org/assignments/cose/cose.xhtml#header-parameters">IANA "COSE Header Parameters" registry</eref>:</t>
        <section anchor="sdclaims">
          <name>sd_claims</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_claims</t>
            </li>
            <li>
              <t>Label: 17</t>
            </li>
            <li>
              <t>Value Type: <tt>[ +bstr ]</tt></t>
            </li>
            <li>
              <t>Value Registry: (empty)</t>
            </li>
            <li>
              <t>Description: A list of selectively disclosed claims, which were originally redacted, then later disclosed at the discretion of the sender.</t>
            </li>
            <li>
              <t>Reference: <xref target="sd-cwt-preparation"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="sdalg">
          <name>sd_alg</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_alg</t>
            </li>
            <li>
              <t>Label: 170</t>
            </li>
            <li>
              <t>Value Type: <tt>int</tt></t>
            </li>
            <li>
              <t>Value Registry: IANA COSE Algorithms</t>
            </li>
            <li>
              <t>Description: The hash algorithm used for redacting disclosures.</t>
            </li>
            <li>
              <t>Reference: <xref target="sd-cwt-issuance"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="sdaeadencryptedclaims">
          <name>sd_aead_encrypted_claims</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_aead_encrypted_claims</t>
            </li>
            <li>
              <t>Label: 171</t>
            </li>
            <li>
              <t>Value Type: <tt>[ +[bstr,bstr,bstr] ]</tt></t>
            </li>
            <li>
              <t>Value Registry: (empty)</t>
            </li>
            <li>
              <t>Description: A list of AEAD encrypted selectively disclosed claims, which were originally redacted, then later disclosed at the discretion of the sender.</t>
            </li>
            <li>
              <t>Reference: <xref target="aead"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="sdaead">
          <name>sd_aead</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_aead</t>
            </li>
            <li>
              <t>Label: 172</t>
            </li>
            <li>
              <t>Value Type: <tt>uint .size 2</tt></t>
            </li>
            <li>
              <t>Value Registry: IANA AEAD Algorithm number</t>
            </li>
            <li>
              <t>Description: The AEAD algorithm used for encrypting disclosures.</t>
            </li>
            <li>
              <t>Reference: <xref target="aead"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="simple59">
        <name>CBOR Simple Values</name>
        <t>IANA is requested to add the following entry to the <eref target="https://www.iana.org/assignments/cbor-simple-values#simple">IANA "CBOR Simple Values" registry</eref>:</t>
        <ul spacing="normal">
          <li>
            <t>Value: 59</t>
          </li>
          <li>
            <t>Semantics: This value as a map key indicates that the Claim Value is an array of redacted Claim Keys at the same level as the map key.</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="blinded-claims"/> of this specification</t>
          </li>
        </ul>
      </section>
      <section anchor="cbor-tags">
        <name>CBOR Tags</name>
        <t>IANA is requested to add the following entries to the <eref target="https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml#tags">IANA "CBOR Tags" registry</eref>:</t>
        <section anchor="to-be-redacted-tag">
          <name>To Be Redacted Tag</name>
          <t>The array claim element, or map key and value inside the "To be redacted" tag is intended to be redacted using selective disclosure.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: 58</t>
            </li>
            <li>
              <t>Data Item: (any)</t>
            </li>
            <li>
              <t>Semantics: An array claim element intended to be redacted, or a map key whose key and value are intended to be redacted.</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="tbr-tag"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="redacted-claim-element-tag">
          <name>Redacted Claim Element Tag</name>
          <t>The byte string inside the tag is a selective disclosure redacted claim element of an array.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: 60</t>
            </li>
            <li>
              <t>Data Item: byte string</t>
            </li>
            <li>
              <t>Semantics: A selective disclosure redacted (array) claim element.</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="blinded-claims"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="to-be-decoy-tag">
          <name>To Be Decoy Tag</name>
          <t>The positive integer inside the tag is a unique number to indicate a specific decoy instance among all the instances in the document.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: 62 (requested)</t>
            </li>
            <li>
              <t>Data Item: <tt>uint .gt 0</tt></t>
            </li>
            <li>
              <t>Semantics: A marker of a location in a map or an array where a decoy is intended to be inserted.</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="tb-decoy-tag"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="cbor-web-token-cwt-claims">
        <name>CBOR Web Token (CWT) Claims</name>
        <t>IANA is requested to add the following entry to the <eref target="https://www.iana.org/assignments/cwt/cwt.xhtml#claims-registry">IANA "CWT Claims" registry</eref>:</t>
        <section anchor="vct">
          <name>vct</name>
          <t>The following completed registration template per RFC8392 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Claim Name: vct</t>
            </li>
            <li>
              <t>Claim Description: Verifiable credential type</t>
            </li>
            <li>
              <t>JWT Claim Name: vct</t>
            </li>
            <li>
              <t>Claim Key: 11</t>
            </li>
            <li>
              <t>Claim Value Type(s): bstr</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="cred-types"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>IANA is requested to add the following entries to the IANA "Media Types" registry (https://www.iana.org/assignments/media-types/media-types.xhtml#application):</t>
        <section anchor="applicationsd-cwt">
          <name>application/sd-cwt</name>
          <t>The following completed registration template is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Type name: application</t>
            </li>
            <li>
              <t>Subtype name: sd-cwt</t>
            </li>
            <li>
              <t>Required parameters: n/a</t>
            </li>
            <li>
              <t>Optional parameters: n/a</t>
            </li>
            <li>
              <t>Encoding considerations: binary</t>
            </li>
            <li>
              <t>Security considerations: <xref target="security"/> of this specification and <xref target="RFC8392"/></t>
            </li>
            <li>
              <t>Interoperability considerations: n/a</t>
            </li>
            <li>
              <t>Published specification: <xref target="sd-cwt-definition"/> of this specification</t>
            </li>
            <li>
              <t>Applications that use this media type: TBD</t>
            </li>
            <li>
              <t>Fragment identifier considerations: n/a</t>
            </li>
            <li>
              <t>Additional information:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Magic number(s): n/a</t>
                </li>
                <li>
                  <t>File extension(s): n/a</t>
                </li>
                <li>
                  <t>Macintosh file type code(s): n/a</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Person &amp; email address to contact for further information:
  SPICE WG mailing list (spice@ietf.org) or
  IETF Security Area (saag@ietf.org)</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: none</t>
            </li>
            <li>
              <t>Author: See Author's Addresses section</t>
            </li>
            <li>
              <t>Change controller: IETF</t>
            </li>
            <li>
              <t>Provisional registration?  No</t>
            </li>
          </ul>
        </section>
        <section anchor="applicationkbcwt">
          <name>application/kb+cwt</name>
          <t>The following completed registration template is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Type name: application</t>
            </li>
            <li>
              <t>Subtype name: kb+cwt</t>
            </li>
            <li>
              <t>Required parameters: n/a</t>
            </li>
            <li>
              <t>Optional parameters: n/a</t>
            </li>
            <li>
              <t>Encoding considerations: binary</t>
            </li>
            <li>
              <t>Security considerations: <xref target="security"/> of this specification and <xref target="RFC8392"/></t>
            </li>
            <li>
              <t>Interoperability considerations: n/a</t>
            </li>
            <li>
              <t>Published specification: <xref target="kbt"/> of this specification</t>
            </li>
            <li>
              <t>Applications that use this media type: TBD</t>
            </li>
            <li>
              <t>Fragment identifier considerations: n/a</t>
            </li>
            <li>
              <t>Additional information:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Magic number(s): n/a</t>
                </li>
                <li>
                  <t>File extension(s): n/a</t>
                </li>
                <li>
                  <t>Macintosh file type code(s): n/a</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Person &amp; email address to contact for further information:
  SPICE WG mailing list (spice@ietf.org) or
  IETF Security Area (saag@ietf.org)</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: none</t>
            </li>
            <li>
              <t>Author: See Author's Addresses section</t>
            </li>
            <li>
              <t>Change controller: IETF</t>
            </li>
            <li>
              <t>Provisional registration?  No</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="structured-syntax-suffix">
        <name>Structured Syntax Suffix</name>
        <t>IANA is requested to add the following entry to the <eref target="https://www.iana.org/assignments/media-type-structured-suffix/media-type-structured-suffix.xhtml#structured-syntax-suffix">IANA "Structured Syntax Suffix" registry</eref>:</t>
        <ul spacing="normal">
          <li>
            <t>Name: SD-CWT</t>
          </li>
          <li>
            <t>+suffix: +sd-cwt</t>
          </li>
          <li>
            <t>References: <xref target="sd-cwt-definition"/> of this specification</t>
          </li>
          <li>
            <t>Encoding considerations: binary</t>
          </li>
          <li>
            <t>Interoperability considerations: n/a</t>
          </li>
          <li>
            <t>Fragment identifier considerations: n/a</t>
          </li>
          <li>
            <t>Security considerations: <xref target="security"/> of this specification</t>
          </li>
          <li>
            <t>Contact: See Author's Addresses section</t>
          </li>
          <li>
            <t>Author/Change controller: IETF</t>
          </li>
        </ul>
      </section>
      <section anchor="content-formats">
        <name>Content-Formats</name>
        <t>IANA is requested to register the following entries in the <eref target="https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats">IANA "CoAP Content-Formats" registry</eref>:</t>
        <table align="left">
          <name>New CoAP Content Formats</name>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/sd-cwt</td>
              <td align="left">-</td>
              <td align="left">293</td>
              <td align="left">
                <xref target="sd-cwt-definition"/> of this specification</td>
            </tr>
            <tr>
              <td align="left">application/kb+cwt</td>
              <td align="left">-</td>
              <td align="left">294</td>
              <td align="left">
                <xref target="kbt"/> of this specification</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="vct-registry">
        <name>Verifiable Credential Type Identifiers</name>
        <t>This specification establishes the Verifiable Credential Type Identifiers registry, under the <eref target="https://www.iana.org/assignments/cwt/cwt.xhtml">IANA "CBOR Web Token (CWT) Claims" group registry heading</eref>.
It registers identifiers for the type of the SD-CWT Claims Set.</t>
        <t>It enables short integers in the range 0-65535 to be used as <tt>vct</tt> Claim Values, similarly to how CoAP Content-Formats (<xref section="12.3" sectionFormat="of" target="RFC7252"/>) enable short integers to be used as <tt>typ</tt> header parameter <xref target="RFC9596"/> values.</t>
        <t>The registration procedures for numbers in specific ranges are as described below:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Range</th>
              <th align="left">Registration Procedure from RFC8126</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-9999</td>
              <td align="left">Specification Required</td>
            </tr>
            <tr>
              <td align="left">10000-64999</td>
              <td align="left">First Come First Served</td>
            </tr>
            <tr>
              <td align="left">65000-65535</td>
              <td align="left">Experimental Use (no operational use)</td>
            </tr>
          </tbody>
        </table>
        <t>Values in the Specification Required <xref target="RFC8126"/> range are registered
after a two-week review period on the spice-ext-review@ietf.org
mailing list, on the advice of one or more Designated Experts.
To allow for the allocation of values prior to publication
of the final version of a specification,
the Designated Experts may approve registration once they are satisfied
that the specification will be completed and published.
However, if the specification is not completed and published
in a timely manner, as determined by the Designated Experts,
the Designated Experts may request that IANA withdraw the registration.</t>
        <t>Registration requests sent to the mailing list for review should use
an appropriate subject
(e.g., "Request to register VCT value").</t>
        <t>Within the review period, the Designated Experts will either approve or deny
the registration request, communicating this decision to the review list and IANA.
Denials should include an explanation and, if applicable,
suggestions as to how to make the request successful.
The IANA escalation process can be initiated by the party requesting registration
when the Designated Experts are not responsive within 14 days.</t>
        <t>Criteria that should be applied by the Designated Experts includes
determining whether the proposed registration duplicates existing functionality,
determining whether it is likely to be of general applicability
or whether it is useful only for a single application,
and whether the registration makes sense.</t>
        <t>IANA must only accept registry updates from the Designated Experts and should direct
all requests for registration in the Specification Required range
to the review mailing list.</t>
        <t>It is suggested that multiple Designated Experts be appointed who are able to represent the perspectives of different applications using this specification, in order to enable broadly-informed review of registration decisions.
In cases where a registration decision could be perceived as creating a conflict of interest for a particular Expert, that Expert should defer to the judgment of the other Experts.</t>
        <section anchor="registration-template">
          <name>Registration Template</name>
          <dl>
            <dt>Verifiable Credential Type Identifier String:</dt>
            <dd>
              <t>String identifier for use as a JWT <tt>vct</tt> or CWT <tt>vct</tt> Claim Value.  It is a StringOrURI value.</t>
            </dd>
            <dt>Verifiable Credential Type Identifier Number:</dt>
            <dd>
              <t>Integer in the range 0-64999 for use as a CWT <tt>vct</tt> Claim Value.  (Integers in the range 65000-65535 are not to be registered.)</t>
            </dd>
            <dt>Description:</dt>
            <dd>
              <t>Brief description of the verifiable credential type</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>For IETF stream RFCs, use "IETF".
For others, give the name of the responsible party.
Other details (e.g., postal address, e-mail address, home page URI) may also be included.</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t>Reference to the document or documents that specify the values to be registered, preferably including URLs that can be used to retrieve the documents.
An indication of the relevant sections may also be included, but is not required.</t>
            </dd>
          </dl>
        </section>
        <section anchor="initial-registry-contents">
          <name>Initial Registry Contents</name>
          <t>No initial values are provided for the registry.</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8949" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <referencegroup anchor="BCP205" target="https://www.rfc-editor.org/info/bcp205">
          <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942">
            <front>
              <title>Improving Awareness of Running Code: The Implementation Status Section</title>
              <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
              <author fullname="A. Farrel" initials="A." surname="Farrel"/>
              <date month="July" year="2016"/>
              <abstract>
                <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
                <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="205"/>
            <seriesInfo name="RFC" value="7942"/>
            <seriesInfo name="DOI" value="10.17487/RFC7942"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-literals">
          <front>
            <title>Concise Diagnostic Notation (CDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="18" month="May" year="2026"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Concise Diagnostic Notation (CDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing CDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies registry-based extension points and uses them to
   support text representations such as of epoch-based dates/times and
   of IP addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -25 is
   // intended for the May 2026 Working Group Last Call.  It corrects a
   // clerical error in -24, which completes the work started in PR #102
   // and adds a couple of paragraphs on editorial conventions.  It also
   // makes a leap ahead beyond -24 by adopting and making a detailed
   // proposal (PR #105) for a renaming choice that was discussed at the
   // 2026-05-13 CBOR interim WG meeting.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-25"/>
        </reference>
        <reference anchor="RFC8610" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8610.xml">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9596">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) "typ" (type) Header Parameter</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This specification adds the equivalent of the JSON Object Signing and Encryption (JOSE) "typ" (type) header parameter to CBOR Object Signing and Encryption (COSE). This enables the benefits of explicit typing (as defined in RFC 8725, "JSON Web Token Best Current Practices") to be brought to COSE objects. The syntax of the COSE type header parameter value is the same as the existing COSE content type header parameter.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9596"/>
          <seriesInfo name="DOI" value="10.17487/RFC9596"/>
        </reference>
        <reference anchor="RFC9679">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>
            <author fullname="K. Isobe" initials="K." surname="Isobe"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9679"/>
          <seriesInfo name="DOI" value="10.17487/RFC9679"/>
        </reference>
        <reference anchor="RFC5116" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5116.xml">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms. The interface and registry can be used as an application-independent set of cryptoalgorithm suites. This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC9901">
          <front>
            <title>Selective Disclosure for JSON Web Tokens</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="K. Yasuda" initials="K." surname="Yasuda"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="November" year="2025"/>
            <abstract>
              <t>This specification defines a mechanism for the selective disclosure
of individual elements of a JSON data structure used as the payload
of a JSON Web Signature (JWS). The primary use case is the selective
disclosure of JSON Web Token (JWT) claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9901"/>
          <seriesInfo name="DOI" value="10.17487/RFC9901"/>
        </reference>
        <reference anchor="I-D.draft-ietf-oauth-sd-jwt-vc">
          <front>
            <title>SD-JWT-based Verifiable Digital Credentials (SD-JWT VC)</title>
            <author fullname="Oliver Terbu" initials="O." surname="Terbu">
              <organization>MATTR</organization>
            </author>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete Inc.</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="24" month="April" year="2026"/>
            <abstract>
              <t>   This specification describes data formats as well as validation and
   processing rules to express Verifiable Digital Credentials with JSON
   payloads with and without selective disclosure based on the SD-JWT
   format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-sd-jwt-vc-16"/>
        </reference>
        <reference anchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="I-D.draft-ietf-keytrans-protocol">
          <front>
            <title>Key Transparency Protocol</title>
            <author fullname="Brendan McMillion" initials="B." surname="McMillion">
         </author>
            <author fullname="Felix Linker" initials="F." surname="Linker">
         </author>
            <date day="16" month="April" year="2026"/>
            <abstract>
              <t>   While there are several established protocols for end-to-end
   encryption, relatively little attention has been given to securely
   distributing the end-user public keys for such encryption.  As a
   result, these protocols are often still vulnerable to eavesdropping
   by active attackers.  Key Transparency is a protocol for distributing
   sensitive cryptographic information, such as public keys, in a way
   that reliably either prevents interference or detects that it
   occurred in a timely manner.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-keytrans-protocol-04"/>
        </reference>
        <reference anchor="t-Closeness" target="https://ieeexplore.ieee.org/document/4221659">
          <front>
            <title>t-Closeness: Privacy Beyond k-Anonymity and l-Diversity</title>
            <author>
              <organization/>
            </author>
            <date year="2007" month="June" day="04"/>
          </front>
        </reference>
        <reference anchor="W3CTAG-Credential-Abuse" target="https://w3ctag.github.io/prevent-credential-abuse/">
          <front>
            <title>Preventing the Abuse of Digital Credentials</title>
            <author>
              <organization>W3C Technical Architecture Group</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7049">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7049"/>
          <seriesInfo name="DOI" value="10.17487/RFC7049"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC9597">
          <front>
            <title>CBOR Web Token (CWT) Claims in COSE Headers</title>
            <author fullname="T. Looker" initials="T." surname="Looker"/>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document describes how to include CBOR Web Token (CWT) claims in the header parameters of any CBOR Object Signing and Encryption (COSE) structure. This functionality helps to facilitate applications that wish to make use of CWT claims in encrypted COSE structures and/or COSE structures featuring detached signatures, while having some of those claims be available before decryption and/or without inspecting the detached payload. Another use case is using CWT claims with payloads that are not CWT Claims Sets, including payloads that are not CBOR at all.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9597"/>
          <seriesInfo name="DOI" value="10.17487/RFC9597"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-serialization">
          <front>
            <title>CBOR Serialization and Determinism</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="23" month="April" year="2026"/>
            <abstract>
              <t>   This document defines two CBOR serializations: "preferred-plus
   serialization" and "deterministic serialization."  It also introduces
   the term "general serialization" to name the full, variable set of
   serialization options defined in RFC 8949.  Together, these three
   form a complete set of serializations that cover the majority of CBOR
   serialization use cases.

   These serializations are largely compatible with those widely
   implemented by the CBOR community.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-serialization-06"/>
        </reference>
        <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="I-D.ietf-oauth-status-list">
          <front>
            <title>Token Status List (TSL)</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Paul Bastian" initials="P." surname="Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <author fullname="Christian Bormann" initials="C." surname="Bormann">
              <organization>SPRIND</organization>
            </author>
            <date day="20" month="April" year="2026"/>
            <abstract>
              <t>   This specification defines a status mechanism called Token Status
   List (TSL), data structures and processing rules for representing the
   status of tokens secured by JSON Object Signing and Encryption (JOSE)
   or CBOR Object Signing and Encryption (COSE), such as JWT, SD-JWT,
   CBOR Web Token, and ISO mdoc.  It also defines an extension point and
   a registry for future status mechanisms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-status-list-20"/>
        </reference>
      </references>
    </references>
    <?line 2211?>

<section anchor="cddl">
      <name>Complete CDDL Schema</name>
      <figure anchor="cddl-schema">
        <name>A complete CDDL description of SD-CWT</name>
        <sourcecode type="cddl"><![CDATA[
sd-cwt-types = sd-cwt-issued / kbt-cwt / sd-cwt-preissued

sd-cwt-issued = #6.18([
   protected: bstr .cbor sd-protected,
   sd-unprotected,
   payload: bstr .cbor sd-payload,
   signature: bstr
])

sd-protected = {
   &(typ: 16) ^ => 293 / "application/sd-cwt",
   &(alg: 1) ^ => int,
   ? &(kid: 4) ^ => bstr,
   ? &(CWT_Claims: 15) ^ => issued_sd_cwt_map,
   ? &(sd_alg: 170) ^ => int,        ; -16 for sha-256
   ? &(sd_aead: 172) ^ => uint .size 2,
   * label => safe_value
}

sd-unprotected = {
   ? &(sd_claims: 17) ^ => salted-array,
   ? &(sd_aead_encrypted_claims: 171) ^ => aead-encrypted-array,
   * label => safe_value
}

sd-payload = {
    ; standard claims
      &(iss: 1) ^ => tstr, ; "https://issuer.example"
    ? &(sub: 2) ^ => tstr, ; "https://holder.example"
    ? &(aud: 3) ^ => tstr, ; "https://verifier.example/app"
    ? &(exp: 4) ^ => secs, ; 1883000000
    ? &(nbf: 5) ^ => secs, ; 1683000000
    ? &(iat: 6) ^ => secs, ; 1683000000
    ? &(cti: 7) ^ => bstr,
      &(cnf: 8) ^ => safe_map, ; key confirmation
    ? &(vct: 11) ^ => bstr,
    ? &(cnonce: 39) ^ => bstr,
    ;
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}

kbt-cwt = #6.18([
   protected: bstr .cbor kbt-protected,
   kbt-unprotected,
   payload: bstr .cbor kbt-payload,
   signature: bstr
])

kbt-protected = {
   &(typ: 16) ^ => 294 / "application/kb+cwt",
   &(alg: 1) ^ => int,
   &(kcwt: 13) ^ => sd-cwt-issued,
   * label => safe_value
}

kbt-unprotected = {
   * label => safe_value
}

kbt-payload = {
      &(aud: 3) ^ => tstr,  ; "https://verifier.example/app"
      time-or-cti-claims,
    ? &(cnonce: 39) ^ => bstr,
    * label => safe_value
}

time-or-cti-claims = (
  ; Requires either time claims that include an iat OR a cti claim.
  ; Note that in CDDL, the // operator has very low precedence (see
  ; Section 2.2.2 of RFC 8610)
  ;
  ; It is possible to have both a cti and time claims, but
  ; time-or-cti-claims insures at least cti or iat is present
  ? &(exp: 4) ^ => secs,
  ? &(nbf: 5) ^ => secs,
    &(iat: 6) ^ => secs  //
    &(cti: 7) ^ => bstr
)
sd-cwt-preissued = #6.18([
   protected: bstr .cbor sd-protected,
   sd-unprotected,
   payload: bstr .cbor preissuance_map,
   signature: bstr
])

; CWT claim legal values only
safe_map = { * label => safe_value }

safe_value =
  int / tstr / bstr /
  [ * safe_value ] /
  safe_map /
  #6.<safe_tag>(safe_value) / #7.<safe_simple> / float


; legal values in issued SD-CWT
issued_sd_cwt_map = {
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}

issued_array_element = redacted_claim_element / issued_sd_cwt_value

issued_sd_cwt_value =
  int / tstr / bstr /
  [ * issued_array_element ] /
  issued_sd_cwt_map /
  #6.<safe_tag>(issued_sd_cwt_value) / #7.<safe_simple> / float


; legal values in claim set sent to Issuer
preissuance_label = label /
                    #6.<TO_BE_REDACTED_TAGNUM>(label) /
                    #6.<TO_BE_DECOY_TAGNUM>(uint .gt 0)

preissuance_map = { * preissuance_label => preissuance_value }

preissuance_value =
  int / tstr / bstr /
  [ * preissuance_value ] /
  preissuance_map /
  #6.<safe_tag>(preissuance_value) / #7.<safe_simple> / float

; CBOR tag number for wrapping to-be-redacted keys or elements
TO_BE_REDACTED_TAGNUM = 58
; CBOR tag number for indicating a decoy value is to be inserted here
TO_BE_DECOY_TAGNUM = 62

label = int / tstr .size (1..255)
safe_tag = uint .ne (TO_BE_REDACTED_TAGNUM /
                     TO_BE_DECOY_TAGNUM /
                     REDACTED_ELEMENT_TAGNUM)

; exclude reserved simple values (24 through 31) from Table 4 of
; RFC 8949, and redacted keys array
safe_simple =  0..23 / 32..58 / 60..255
secs = int / float53
float53 = -9007199254740992.0..9007199254740992.0 ; from 2^53 to 2^53

salted-array = [ +bstr-encoded-salted ]

bstr-encoded-salted = bstr .cbor salted-entry
salted-entry = salted-claim / salted-element / decoy
salted-claim = [
  bstr .size 16,     ; 128-bit salt
  any,               ; Claim Value
  (int / text)       ; Claim Key
]
salted-element = [
  bstr .size 16,     ; 128-bit salt
  any                ; Claim Value
]
decoy = [
  bstr .size 16      ; 128-bit salt
]

aead-encrypted-array = [ +aead-encrypted ]
aead-encrypted = [
  bstr,              ; nonce of N_MIN octets
  bstr,              ; the encryption ciphertext output of a
                     ;   bstr-encoded-salted
  bstr,              ; the corresponding authentication tag
  ?aead-key-context  ; optional context to select the correct key
]
aead-key-context = uint / tstr / thumbprint
thumbprint = bstr    ; a COSE key thumprint
; redacted_claim_keys is used as a map key. The corresponding value is
; an array of Redacted Claim Hashes whose corresponding unredacted map
; keys and values are in the same map.
redacted_claim_keys = #7.59  ; CBOR simple value 59

; CBOR tag for wrapping a redacted element in an array
REDACTED_ELEMENT_TAGNUM = 60

; redacted_claim_element is used in CDDL payloads that contain
; array elements that are meant to be redacted.
redacted_claim_element = #6.<REDACTED_ELEMENT_TAGNUM>( bstr )
]]></sourcecode>
      </figure>
    </section>
    <section anchor="comparison-to-sd-jwt">
      <name>Comparison to SD-JWT</name>
      <t>SD-CWT is modeled after SD-JWT, with adjustments to align with conventions in CBOR, COSE, and CWT.</t>
      <section anchor="media-types-1">
        <name>Media Types</name>
        <t>The COSE equivalent of <tt>application/sd-jwt</tt> is <tt>application/sd-cwt</tt>.</t>
        <t>The COSE equivalent of <tt>application/kb+jwt</tt> is <tt>application/kb+cwt</tt>.</t>
        <t>The COSE equivalent of the <tt>+sd-jwt</tt> structured suffix is <tt>+sd-cwt</tt>.</t>
      </section>
      <section anchor="redaction-claims">
        <name>Redaction Claims</name>
        <t>The COSE equivalent of <tt>_sd</tt> is a CBOR Simple Value (requested assignment 59). The following value is an array of the redacted Claim Keys.</t>
        <t>The COSE equivalent of <tt>...</tt> is a CBOR tag (requested assignment 60) of the digested salted claim.</t>
        <t>In SD-CWT, the order of the fields in a disclosure is salt, value, key.
In SD-JWT the order of fields in a disclosure is salt, key, value.
This choice ensures that the second element in the CBOR array is always the value, which makes parsing faster and more efficient in strongly-typed programming languages.</t>
        <t>In SD-CWT, all decoy digests are disclosed between the Issuer and the Holder.
In SD-JWT, no disclosure is sent for a decoy digest.</t>
      </section>
      <section anchor="issuance">
        <name>Issuance</name>
        <t>The issuance process for SD-CWT is similar to SD-JWT, with the exception that a confirmation claim is <bcp14>REQUIRED</bcp14>.</t>
      </section>
      <section anchor="presentation">
        <name>Presentation</name>
        <t>The presentation process for SD-CWT is similar to SD-JWT, except that a Key Binding Token is <bcp14>REQUIRED</bcp14>.
The KBT then includes the issued SD-CWT, including the Holder-selected disclosures.
Because the entire SD-CWT is included as a claim in the KBT, the disclosures are covered by the Holder's signature in the KBT, but not by the Issuer's signature in the SD-CWT.</t>
      </section>
      <section anchor="validation">
        <name>Validation</name>
        <t>The validation process for SD-CWT is similar to SD-JWT, however, JSON Objects are replaced with CBOR Maps, which can contain integer keys and CBOR Tags.</t>
      </section>
    </section>
    <section anchor="keys-used-in-the-examples">
      <name>Keys Used in the Examples</name>
      <section anchor="subject-holder">
        <name>Subject / Holder</name>
        <t>Holder COSE key pair in EDN format:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /alg/  3 : -7, /ES256/
  /crv/ -1 : 1, /P-256/
  /x/   -2 : h'8554eb275dcd6fbd1c7ac641aa2c90d9
               2022fd0d3024b5af18c7cc61ad527a2d',
  /y/   -3 : h'4dc7ae2c677e96d0cc82597655ce92d5
               503f54293d87875d1e79ce4770194343',
  /d/   -4 : h'5759a86e59bb3b002dde467da4b52f3d
               06e6c2cd439456cf0485b9b864294ce5'
}
]]></sourcecode>
        <t>The fields necessary for the COSE Key Thumbprint <xref target="RFC9679"/>
in EDN format:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /crv/ -1 : 1, /P-256/
  /x/   -2 : h'8554eb275dcd6fbd1c7ac641aa2c90d9
               2022fd0d3024b5af18c7cc61ad527a2d',
  /y/   -3 : h'4dc7ae2c677e96d0cc82597655ce92d5
               503f54293d87875d1e79ce4770194343'
}
]]></sourcecode>
        <t>The same map in CBOR pretty printing:</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A4                                      # map(4)
   01                                   # unsigned(1)
   02                                   # unsigned(2)
   20                                   # negative(0)
   01                                   # unsigned(1)
   21                                   # negative(1)
   58 20                                # bytes(32)
      8554EB275DCD6FBD1C7AC641AA2C90D92022FD0D3024B5AF18C7CC61AD527A2D
   22                                   # negative(2)
   58 20                                # bytes(32)
      4DC7AE2C677E96D0CC82597655CE92D5503F54293D87875D1E79CE4770194343
]]></sourcecode>
        <t>The COSE Key Thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
8343d73cdfcb81f2c7cd11a5f317be8eb34e4807ec8c9ceb282495cffdf037e0
]]></artwork>
        <t>The COSE Key Thumbprint URI:</t>
        <artwork><![CDATA[
urn:ietf:params:oauth:ckt:g0PXPN_LgfLHzRGl8xe-jrNOSAfsjJzrKCSVz_3wN-A
]]></artwork>
        <t>Holder key pair in JWK format:</t>
        <artwork><![CDATA[
{
  "kty": "EC",
  "alg": "ES256",
  "kid": "WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M",
  "crv": "P-256",
  "x": "hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1Sei0",
  "y": "TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M",
  "d": "V1moblm7OwAt3kZ9pLUvPQbmws1DlFbPBIW5uGQpTOU"
}
]]></artwork>
        <t>Input to Holder public JWK thumbprint (ignore line breaks):</t>
        <artwork><![CDATA[
{"crv":"P-256","kty":"EC","x":"hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1S
ei0","y":"TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M"}
]]></artwork>
        <t>SHA-256 of the Holder public JWK input string (in hex):</t>
        <artwork><![CDATA[
59143645b6394582422317c340bf5a825f5f15209856ee17a1ca9beb37ab7353
]]></artwork>
        <t>Holder public JWK thumbprint:</t>
        <artwork><![CDATA[
WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M
]]></artwork>
        <t>Holder public key in PEM format:</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhVTrJ13Nb70cesZBqiyQ2SAi/Q0w
JLWvGMfMYa1Sei1Nx64sZ36W0MyCWXZVzpLVUD9UKT2Hh10eec5HcBlDQw==
-----END PUBLIC KEY-----
]]></artwork>
        <t>Holder private key in PEM format:</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgV1moblm7OwAt3kZ9
pLUvPQbmws1DlFbPBIW5uGQpTOWhRANCAASFVOsnXc1vvRx6xkGqLJDZICL9DTAk
ta8Yx8xhrVJ6LU3HrixnfpbQzIJZdlXOktVQP1QpPYeHXR55zkdwGUND
-----END PRIVATE KEY-----
]]></artwork>
      </section>
      <section anchor="issuer">
        <name>Issuer</name>
        <t>Issuer COSE key pair in Extended Diagnostic Notation (EDN):</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /kid/  2 : "https://issuer.example/cwk3.cbor",
  /alg/  3 : -51, /ESP384/
  /crv/ -1 : 2, /P-384/
  /x/   -2 : h'c31798b0c7885fa3528fbf877e5b4c3a6dc67a5a5dc6b307
               b728c3725926f2abe5fb4964cd91e3948a5493f6ebb6cbbf',
  /y/   -3 : h'8f6c7ec761691cad374c4daa9387453f18058ece58eb0a8e
               84a055a31fb7f9214b27509522c159e764f8711e11609554',
  /d/   -4 : h'71c54d2221937ea612db1221f0d3ddf771c9381c4e3be41d
               5aa0a89d685f09cfef74c4bbf104783fd57e87ab227d074c'
}
]]></sourcecode>
        <t>The fields necessary for the COSE Key Thumbprint <xref target="RFC9679"/>
in EDN format:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /crv/ -1 : 2, /P-384/
  /x/   -2 : h'c31798b0c7885fa3528fbf877e5b4c3a6dc67a5a5dc6b307
               b728c3725926f2abe5fb4964cd91e3948a5493f6ebb6cbbf',
  /y/   -3 : h'8f6c7ec761691cad374c4daa9387453f18058ece58eb0a8e
               84a055a31fb7f9214b27509522c159e764f8711e11609554'
}
]]></sourcecode>
        <t>The same map in CBOR pretty printing:</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A4                                      # map(5)
   01                                   # unsigned(1)
   02                                   # unsigned(2)
   20                                   # negative(0)
   02                                   # unsigned(2)
   21                                   # negative(1)
   58 30                                # bytes(48)
      C31798B0C7885FA3528FBF877E5B4C3A6DC67A5A5DC6B307
      B728C3725926F2ABE5FB4964CD91E3948A5493F6EBB6CBBF
   22                                   # negative(2)
   58 30                                # bytes(48)
      8F6C7EC761691CAD374C4DAA9387453F18058ECE58EB0A8E
      84A055A31FB7F9214B27509522C159E764F8711E11609554
]]></sourcecode>
        <t>The COSE Key Thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
554550a611c9807b3462cfec4a690a1119bc43b571da1219782133f5fd6dbcb0
]]></artwork>
        <t>The COSE Key Thumbprint URI:</t>
        <artwork><![CDATA[
urn:ietf:params:oauth:ckt:VUVQphHJgHs0Ys_sSmkKERm8Q7Vx2hIZeCEz9f1tvLA
]]></artwork>
        <t>Issuer key pair in JWK format:</t>
        <artwork><![CDATA[
{
"kty": "EC",
"alg": "ES384",
"kid": "https://issuer.example/cwk3.cbor",
"crv": "P-384",
"x":"wxeYsMeIX6NSj7-HfltMOm3GelpdxrMHtyjDclkm8qvl-0lkzZHjlIpUk_brtsu_",
"y":"j2x-x2FpHK03TE2qk4dFPxgFjs5Y6wqOhKBVox-3-SFLJ1CVIsFZ52T4cR4RYJVU",
"d":"ccVNIiGTfqYS2xIh8NPd93HJOBxOO-QdWqConWhfCc_vdMS78QR4P9V-h6sifQdM"
}
]]></artwork>
        <t>Input to Issuer JWK thumbprint (ignore line breaks):</t>
        <artwork><![CDATA[
{"crv":"P-384","kty":"EC","x":"wxeYsMeIX6NSj7-HfltMOm3GelpdxrMHtyjDclkm
8qvl-0lkzZHjlIpUk_brtsu_","y":"j2x-x2FpHK03TE2qk4dFPxgFjs5Y6wqOhKBVox-3
-SFLJ1CVIsFZ52T4cR4RYJVU"}
]]></artwork>
        <t>SHA-256 of the Issuer JWK input string (in hex):</t>
        <artwork><![CDATA[
18d4ddb7065d945357e3972dee76af4eddc7c285fb42efcfa900c6a4f8437850
]]></artwork>
        <t>Issuer JWK thumbprint:</t>
        <artwork><![CDATA[
GNTdtwZdlFNX45ct7navTt3HwoX7Qu_PqQDGpPhDeFA
]]></artwork>
        <t>Issuer public key in PEM format:</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwxeYsMeIX6NSj7+HfltMOm3GelpdxrMH
tyjDclkm8qvl+0lkzZHjlIpUk/brtsu/j2x+x2FpHK03TE2qk4dFPxgFjs5Y6wqO
hKBVox+3+SFLJ1CVIsFZ52T4cR4RYJVU
-----END PUBLIC KEY-----
]]></artwork>
        <t>Issuer private key in PEM format:</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBxxU0iIZN+phLbEiHw
0933cck4HE475B1aoKidaF8Jz+90xLvxBHg/1X6HqyJ9B0yhZANiAATDF5iwx4hf
o1KPv4d+W0w6bcZ6Wl3Gswe3KMNyWSbyq+X7SWTNkeOUilST9uu2y7+PbH7HYWkc
rTdMTaqTh0U/GAWOzljrCo6EoFWjH7f5IUsnUJUiwVnnZPhxHhFglVQ=
-----END PRIVATE KEY-----
]]></artwork>
      </section>
    </section>
    <section anchor="nesting-walkthrough">
      <name>Nesting Example Walkthrough</name>
      <section anchor="issuer-1">
        <name>Issuer</name>
        <t>How the Issuer decides which claims to include in an SD-CWT Claims Set, and which claims in a Claims Set to redact is a local policy matter outside of the scope of this specification.</t>
        <t>Here we will start with the example Claims Set from <xref target="edn-nested-unblinded"/>.</t>
        <t>The Holder or the administrator of the Issuer could use the To Be Redacted tag (see <xref target="tbr-tag"/>) and the To Be Decoy tag (see <xref target="tb-decoy-tag"/>) as a hint to the Issuer to indicate claims to be redacted or locations for decoys.
The examples in this document were produced using this method.</t>
        <t>Below is the nested Claims Set example from <xref target="edn-nested-unblinded"/> with To Be Redacted tags wrapping the claims that are actually redacted in our nested example.</t>
        <figure>
          <name>EDN example of Nested Claims Set tagged with desired redactions</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : { ... },
    504: [                          / inspection history log /
        58({                        / REDACT /
            500: true,              / inspection passed /
            502: 1549560720,        / 2019-02-07T17:32:00 /
            58(501): "DCBA-101777", / inspector license ; REDACT /
            58(503): {              / REDACT /
                1: "us",            / United States /
                58(2): "co",        / region=Colorado ; REDACT /
                58(3): "80302"      / postcode ; REDACT /
            }
        }),
        58({                        / REDACT /
            500: true,              / inspection passed /
            502: 1612560720,        / 2021-02-04T20:14:00 /
            58(501): "EFGH-789012", / inspector license ; REDACT /
            58(503): {              / REDACT /
                1: "us",            / United States /
                58(2): "nv",        / region=Nevada ; REDACT /
                58(3): "89155"      / postcode ; REDACT /
            }
        }),
        58({                        / REDACT /
            500: true,              / inspection passed /
            502: 17183928,          / 2023-01-17T17:19:00 /
            58(501): "ABCD-123456", / inspector license ; REDACT /
            58(503): {              / REDACT /
                1: "us",            / United States /
                58(2): "ca",        / region=California ; REDACT /
                58(3): "94188"      / postcode ; REDACT /
            }
        })
    ]
}
]]></sourcecode>
        </figure>
        <t>The Issuer in our example respects the hints and produces the following issued SD-CWT.
The Issuer has generated 15 disclosures.</t>
        <ul empty="true">
          <li>
            <t>Note that the Issuer can list the issued disclosures (if any) in any order.</t>
          </li>
        </ul>
        <figure>
          <name>The Issued CWT containing nested redacted claims</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18([  / issuer SD-CWT /
  / CWT protected / << {
    / alg /    1  : -35, / ES384 /
    / kid /    4  : 'https://issuer.example/cose-key3',
    / typ /    16 : 293, # application/sd-cwt
    / sd_alg / 170 : -16  / SHA256 /
  } >>,
  / CWT unprotected / {
    / sd_claims / 17 : [ / these are all the disclosures /
        <<[
            /salt/   h'591eb2081b05be2dcbb6f8459cc0fe51',
            /value/  "DCBA-101777",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 7257a869 /
        <<[
            /salt/   h'e70e23e77176fa59beb0b2559943a079',
            /value/  "co",
            /claim/  2   / region=Colorado /
        ]>>,         / Redacted Claim Hash begins 1b897171 /
        <<[
            /salt/   h'cbbf1cd3d1a5da83e1d92c08d566a481',
            /value/  "80302",
            /claim/  3   / postcode=80302 /
        ]>>,         / Redacted Claim Hash begins 49412884 /
        <<[
            /salt/   h'c23a4d192be75dbd583be570482de8dd',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'1b89717167f39d51eec08b13baeda570
                           eff5d0aedaa1d7d0821185c33634a5a0',
                         h'49412884fa1e3787c17d1320bdd48f6e
                           0e5365da010cde0571d4a7effd13cc2a'
                     ]
                     },
            /claim/  503   / Denver location /
        ]>>,         / Redacted Claim Hash begins c24c646b /
        <<[
            /salt/   h'2df7d2c105b5bf3acf9c698f3658552f',
            /value/  {
                         500: true,
                         502: 1549560720,
                         simple(59): [
                         h'7257a8697dfa40221079b00fb65fe587
                           c310e6ca3da1aa33b090335de66ec810',
                         h'c24c646b52fecd773c6ea01c6caa5a73
                           422b85d3afa5900fa998336d83a88025'
                     ]
                     }   / inspection 7-Feb-2019 /
        ]>>,         / Redacted Claim Hash begins ca6b8516 /
        <<[
            /salt/   h'9a3bc899090435650b377199450c1fa1',
            /value/  "EFGH-789012",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 98d15f82 /
        <<[
            /salt/   h'5e852d2eef59c0ebeab8c08fca252cc5',
            /value/  "nv",
            /claim/  2   / region=Nevada /
        ]>>,         / Redacted Claim Hash begins da268d9b /
        <<[
            /salt/   h'3dd46bd7dea09c9ee7dfe4e0d510129b',
            /value/  "89155",
            /claim/  3   / postcode=89155 /
        ]>>,         / Redacted Claim Hash begins 61dcdb8c /
        <<[
            /salt/   h'c225607427e01072bbafcce7e48049e3',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'da268d9b81c19c02fcea7c4cadc2e23f
                           0454a4550a380cde8b0842463ed034da',
                         h'61dcdb8cbae7b66c3e36b2510daf61ba
                           9168a50f20f4cad4213ed231e33d5b7b'
                     ]
                     },
            /claim/  503   / Las Vegas location /
        ]>>,         / Redacted Claim Hash begins 5dec8f26 /
        <<[
            /salt/   h'1b248d469cf00b8dfa896f069f04697b',
            /value/  {
                         500: true,
                         502: 1612560720,
                         simple(59): [
                         h'98d15f82dfadc18f5700582ff47b286c
                           d7ca047bb1e0529a5374c59d6dc5057d',
                         h'5dec8f268d3b9735936740c91b9baf00
                           43de8ee42357a414e3e8d4ab098fae5d'
                     ]
                     }   / inspection 4-Feb-2021 /
        ]>>,         / Redacted Claim Hash begins 0dfdc69d /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins af375dc3 /
        <<[
            /salt/   h'52da9de5dc61b33775f9348b991d3d78',
            /value/  "ca",
            /claim/  2   / region=California /
        ]>>,         / Redacted Claim Hash begins 2470fb91 /
        <<[
            /salt/   h'a965de35aa599d603fe1b7aa89490eb0',
            /value/  "94188",
            /claim/  3   / postcode=94188 /
        ]>>,         / Redacted Claim Hash begins cf397a08 /
        <<[
            /salt/   h'483e4b3c194df6073a9c41ca9f274067',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'2470fb9175b062c347ab3c3a19776d02
                           476112a17cd7cfc9416664bc058c220b',
                         h'cf397a08917528624ca3b332c9edcc54
                           a72c9411dd5983f68017ce160f709f52'
                     ]
                     },
            /claim/  503   / San Francisco location /
        ]>>,         / Redacted Claim Hash begins 9d151abe /
        <<[
            /salt/   h'cd99b3858f1d659f9d16039abf8c5fba',
            /value/  {
                         500: true,
                         502: 1674004740,
                         simple(59): [
                         h'af375dc3fba1d082448642c00be7b2f7
                           bb05c9d8fb61cfc230ddfdfb4616a693',
                         h'9d151abeb800adcc11ff10ff61fbd3d7
                           5944c134b40a24abef1787d3ae6583aa'
                     ]
                     }   / inspection 17-Jan-2023 /
        ]>>,         / Redacted Claim Hash begins 20d9bb11 /
    ]
  },
  / CWT payload / << {
    / iss / 1   : "https://issuer.example",
    / sub / 2   : "https://holder.example",
    / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
    / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
    / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
    / cnf / 8   : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /inspection history log/ 504: [
      / inspection 7-Feb-2019 /
      60(h'ca6b851688236744ff0cf0814508e4f1
           81d3811bfec4ed5bb8ace7823132dbc0'),
      / inspection 4-Feb-2021 /
      60(h'0dfdc69d0efb65eec14bf28af78cd8f0
           6cabfe8e2b1a0611ef8bca869ce35b61'),
      / inspection 17-Jan-2023 /
      60(h'20d9bb11363bae49851cfd4a3f166539
           d0aa00433c30aede18380bfa98d781dc')
    ]
  } >>,
  / CWT signature / h'8c1e9957b573191c47a9f4244abc4be2
                      7c9944c2a992e015a86e19c24b041195
                      51ee920061066edb22823114f96dac2a
                      1bfa9c7a503e3033a0cd5aad6d9165f7
                      5483e9a79eb31f9bfdfb07df5fb7b8e5
                      0da8acbabad974999d12096f4ae8b420'
])
]]></sourcecode>
        </figure>
        <t>Now the issued SD-CWT is provided to the Holder for processing.</t>
      </section>
      <section anchor="holder">
        <name>Holder</name>
        <t>Once it receives an issued SD-CWT from the Issuer, the Holder validates all of the disclosures as described in <xref target="holder-validation"/>.
The Holder needs to unwrap all nested claims starting with the top level and proceeding deeper, to insure that there are no unmatched Redacted Claim Hashes anywhere in the document, and no unmatched disclosures.</t>
        <t>Once the issued CWT is validated, the Holder can create multiple presentations, generating different KBTs (as described in <xref target="kbt"/>) for each presentation by changing, for example, the audience and the choice of disclosures.
The privacy issues in <xref target="privacy"/> apply.</t>
        <t>In our example, the Holder chooses to disclose two of the inspections (from 2019 and 2023), the inspector license numbers and partially redacted location maps from both of these inspections, and the region (California) in the location map of the 2023 inspection.
In our example, the Holder sorts these disclosures in ascending order of the Redacted Claim Hash corresponding to each disclosure. (It could have used <em>any</em> order.)</t>
        <figure>
          <name>The Holder's choice of nested disclosures, sorted</name>
          <sourcecode type="cbor-diag"><![CDATA[
    / sd_claims / 17 : [ / these are the disclosures /
        <<[
            /salt/   h'cd99b3858f1d659f9d16039abf8c5fba',
            /value/  {
                         500: true,
                         502: 1674004740,
                         simple(59): [
                         h'af375dc3fba1d082448642c00be7b2f7
                           bb05c9d8fb61cfc230ddfdfb4616a693',
                         h'9d151abeb800adcc11ff10ff61fbd3d7
                           5944c134b40a24abef1787d3ae6583aa'
                     ]
                     }   / inspection 17-Jan-2023 /
        ]>>,         / Redacted Claim Hash begins 20d9bb11 /
        <<[
            /salt/   h'52da9de5dc61b33775f9348b991d3d78',
            /value/  "ca",
            /claim/  2   / region=California /
        ]>>,         / Redacted Claim Hash begins 2470fb91 /
        <<[
            /salt/   h'591eb2081b05be2dcbb6f8459cc0fe51',
            /value/  "DCBA-101777",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 7257a869 /
        <<[
            /salt/   h'483e4b3c194df6073a9c41ca9f274067',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'2470fb9175b062c347ab3c3a19776d02
                           476112a17cd7cfc9416664bc058c220b',
                         h'cf397a08917528624ca3b332c9edcc54
                           a72c9411dd5983f68017ce160f709f52'
                     ]
                     },
            /claim/  503   / San Francisco location /
        ]>>,         / Redacted Claim Hash begins 9d151abe /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins af375dc3 /
        <<[
            /salt/   h'c23a4d192be75dbd583be570482de8dd',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'1b89717167f39d51eec08b13baeda570
                           eff5d0aedaa1d7d0821185c33634a5a0',
                         h'49412884fa1e3787c17d1320bdd48f6e
                           0e5365da010cde0571d4a7effd13cc2a'
                     ]
                     },
            /claim/  503   / Denver location /
        ]>>,         / Redacted Claim Hash begins c24c646b /
        <<[
            /salt/   h'2df7d2c105b5bf3acf9c698f3658552f',
            /value/  {
                         500: true,
                         502: 1549560720,
                         simple(59): [
                         h'7257a8697dfa40221079b00fb65fe587
                           c310e6ca3da1aa33b090335de66ec810',
                         h'c24c646b52fecd773c6ea01c6caa5a73
                           422b85d3afa5900fa998336d83a88025'
                     ]
                     }   / inspection 7-Feb-2019 /
        ]>>,         / Redacted Claim Hash begins ca6b8516 /
    ]
]]></sourcecode>
        </figure>
        <t>Due to the way the claims are nested, disclosing the region of the 2023 inspection would not have been useful without disclosing the enclosing location map and its enclosing 2023 inspection array element.
In other words, the Holder needs to make sure that any intermediate levels of nested claims it wishes to disclose are also disclosed, otherwise the Verifier will not be able to validate them.
At best, such "orphaned" disclosures will be discarded by the Verifier, and at worst, the Verifier could reject the entire SD-CWT.</t>
        <t>The Holder then presents its KBT to the Verifier.</t>
      </section>
      <section anchor="verifier">
        <name>Verifier</name>
        <t>The Verifier receives the Holder's KBT, which contains an SD-CWT with the Holder's choice of (nested) disclosures.
The example does not show the KBT for brevity; it is always used in an actual presentation.
In the example the disclosures are sorted in the order of the Redacted Claim Hash corresponding to each disclosure.
(The Holder can present its disclosures in any order.)</t>
        <t>The Verifier needs to match the disclosures to their corresponding Redacted Claims in the Claims Set in the payload of our example SD-CWT.
The Verifier needs to calculate the Redacted Claim Hash for each of the disclosures it receives.</t>
        <t>Typically the Verifier would create a lookup table of disclosures indexed by the Redacted Claim Hash.
Comments in all the examples show the first 4 bytes of the Redacted Claim Hash of each disclosure.
The comments are only present in the diagnostic (text) notation to make it easier for the reader; comments are not included in CWTs or in SD-CWT in their native form.</t>
        <t>Our example document only contains three Redacted Claims that are currently visible.</t>
        <figure>
          <name>Redacted Claims at Level 1</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  / inspection 7-Feb-2019 /
  60(h'ca6b851688236744ff0cf0814508e4f1
       81d3811bfec4ed5bb8ace7823132dbc0'),
  / inspection 4-Feb-2021 /
  60(h'0dfdc69d0efb65eec14bf28af78cd8f0
       6cabfe8e2b1a0611ef8bca869ce35b61'),
  / inspection 17-Jan-2023 /
  60(h'20d9bb11363bae49851cfd4a3f166539
       d0aa00433c30aede18380bfa98d781dc')
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier looks for matching Redacted Claim Hashes among the disclosures it has received.
In this example it finds two matching hashes (the first and last hash in the inspection history log claim array).
The Verifier replaces the two matching Redacted Claim Hashes with their disclosed values (in this case, the last and first disclosures, which are both replacing Redacted Claim Elements) and removes the second Redacted Claim Hash.
The Verifier no longer considers the matched disclosures; each disclosure cannot match more than one Redacted Claim Hash.</t>
        <figure>
          <name>Claims after revealing disclosures at Level 1</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  {
    500: true,
    502: 1549560720,
    simple(59): [
      h'7257a8697dfa40221079b00fb65fe587
        c310e6ca3da1aa33b090335de66ec810',
      h'c24c646b52fecd773c6ea01c6caa5a73
        422b85d3afa5900fa998336d83a88025'
    ]
  }   / inspection 7-Feb-2019 /,
  {
    500: true,
    502: 1674004740,
    simple(59): [
      h'af375dc3fba1d082448642c00be7b2f7
        bb05c9d8fb61cfc230ddfdfb4616a693',
      h'9d151abeb800adcc11ff10ff61fbd3d7
        5944c134b40a24abef1787d3ae6583aa'
    ]
  }   / inspection 17-Jan-2023 /
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier then repeats the process again at the next "level" of nesting.
In this example, all the visible Redacted Claims happen to be Redacted Claim Keys.
The second, third, fourth, and sixth disclosures match.
The Verifier replaces these Redacted Claims with the corresponding Claim Keys from the disclosures.</t>
        <figure>
          <name>Claims after revealing disclosures at Level 2</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  {
    500: true,
    502: 1549560720,
    501: "DCBA-101777",
    503: {
      1: "us",
      simple(59): [
        h'1b89717167f39d51eec08b13baeda570
          eff5d0aedaa1d7d0821185c33634a5a0',
        h'49412884fa1e3787c17d1320bdd48f6e
          0e5365da010cde0571d4a7effd13cc2a'
      ]
    }
  }   / inspection 7-Feb-2019 /,
  {
    500: true,
    502: 1674004740,
    501: "ABCD-123456",
    503: {
      1: "us",
      simple(59): [
        h'2470fb9175b062c347ab3c3a19776d02
          476112a17cd7cfc9416664bc058c220b',
        h'cf397a08917528624ca3b332c9edcc54
          a72c9411dd5983f68017ce160f709f52'
      ]
    }
  }   / inspection 17-Jan-2023 /
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier then repeats the process again at the next "level" of nesting.
The Verifier finds a single matching disclosure (the second disclosure).
The Verifier replaces the matching Redacted Claim Hash and removes the others.</t>
        <figure>
          <name>Claims after revealing disclosures at Level 3</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  {
    500: true,
    502: 1549560720,
    501: "DCBA-101777",
    503: {
      1: "us"
    }
  }   / inspection 7-Feb-2019 /,
  {
    500: true,
    502: 1674004740,
    501: "ABCD-123456",
    503: {
      1: "us",
      2: "ca" / region=California /
    }
  }   / inspection 17-Jan-2023 /
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier has no more Redacted Claim Hashes to process.
Assuming the other validation steps pass, the Verifier can pass the Validated Claims Set on to the application.</t>
        <t>If there were remaining disclosures, the SD-CWT is invalid.
The Verifier could decide to ignore the extra disclosures, or to reject the entire SD-CWT depending on its local policy.
Extra disclosures cannot be verified and indicate incorrect behavior by the Holder.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to the RFC Editor: Please remove this section as well as references to <xref target="BCP205"/> before AUTH48.</t>
      <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="BCP205"/>.
The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been made to verify the information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="BCP205"/>, "This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="transmute-prototype">
        <name>Transmute Prototype</name>
        <t>Organization: Transmute Industries Inc</t>
        <t>Name: <eref target="https://github.com/transmute-industries/sd-cwt">github.com/transmute-industries/sd-cwt</eref></t>
        <t>Description: An open-source implementation of this specification.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version ('main') implements functionality similar to that described in this specification, and will be revised, with breaking changes to support the generation of example data to support this specification.</t>
        <t>License: Apache-2.0</t>
        <t>Implementation Experience: No interop testing has been done yet. The code works as a proof of concept, but is not yet production ready.</t>
        <t>Contact: Orie Steele (orie.steele@tradeverifyd.com)</t>
      </section>
      <section anchor="rust-prototype">
        <name>Rust Prototype</name>
        <t>Organization: SimpleLogin</t>
        <t>Name: <eref target="https://github.com/beltram/esdicawt">github.com/beltram/esdicawt</eref></t>
        <t>Description: An open-source Rust implementation of this specification in Rust.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version is close to the spec with the exception of <tt>redacted_claim_keys</tt> using a CBOR SimpleValue as label instead of a tagged key. Not all of the verifications have been implemented yet.</t>
        <t>License: Apache-2.0</t>
        <t>Implementation Experience: No interop testing has been done yet. The code works as a proof of concept, but is not yet production ready.</t>
        <t>Contact: Beltram Maldant (beltram.ietf.spice@pm.me)</t>
      </section>
      <section anchor="python-prototype">
        <name>Python Prototype</name>
        <t>Organization: Tradeverifyd</t>
        <t>Name: <eref target="https://github.com/tradeverifyd/sd-cwt">github.com/tradeverifyd/sd-cwt</eref></t>
        <t>Description: An open-source Python implementation of this specification.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version does not implement decoys, but does verify the test vectors in draft-ietf-spice-sd-cwt-05.</t>
        <t>License: Apache-2.0</t>
        <t>Implementation Experience: No interop testing has been done yet. The code works as a proof of concept, but is not yet production ready.</t>
        <t>Contact: Orie Steele (orie.steele@tradeverifyd.com)</t>
      </section>
    </section>
    <section anchor="relationship-between-rats-architecture-and-verifiable-credentials">
      <name>Relationship between RATS Architecture and Verifiable Credentials</name>
      <t>This appendix describes the relationship between the Remote ATtestation procedureS (RATS) architecture defined in <xref target="RFC9334"/> and the three-party model used in verifiable credentials.</t>
      <section anchor="three-party-verifiable-credentials-model">
        <name>Three-Party Verifiable Credentials Model</name>
        <t>The verifiable credentials model involves three distinct parties:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Issuer</strong>: Creates and signs credentials containing claims about a subject</t>
          </li>
          <li>
            <t><strong>Holder</strong>: Controls the credential and presents it to verifiers (the holder is typically the subject of the credential)</t>
          </li>
          <li>
            <t><strong>Verifier</strong>: Receives and validates presented credentials to make authorization or access decisions. In this appendix we refer to this role as a <strong>Credential Verifier</strong></t>
          </li>
        </ul>
        <t>In SD-CWT, these roles are explicitly represented: the Issuer signs claims using an Assertion Key (<xref target="terminology"/>), the Holder controls the credential and creates presentations using a Confirmation Key, and the Verifier validates both the Issuer's signature over the credential and the Holder's signature over the presentation (Key Binding Token).</t>
      </section>
      <section anchor="rats-architecture-roles">
        <name>RATS Architecture Roles</name>
        <t>The RATS architecture defines the following key roles:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Attester</strong>: Produces Evidence about its own trustworthiness and operational state</t>
          </li>
          <li>
            <t><strong>Endorser</strong>: Provides Endorsements about an Attester (typically a manufacturer)</t>
          </li>
          <li>
            <t><strong>Reference Value Provider</strong>: Supplies Reference Values used by Verifiers to evaluate Evidence</t>
          </li>
          <li>
            <t><strong>Verifier</strong>: Appraises Evidence and produces Attestation Results. In this appendix we refer to this role as a <strong>RATS Verifier</strong></t>
          </li>
          <li>
            <t><strong>Relying Party</strong>: Consumes Attestation Results to make authorization decisions</t>
          </li>
        </ul>
      </section>
      <section anchor="role-mappings-in-the-three-party-model">
        <name>Role Mappings in the Three-Party Model</name>
        <t>The mapping between RATS roles and verifiable credential roles can be understood as follows:</t>
        <section anchor="verifiable-credential-issuer-as-rats-endorser">
          <name>Verifiable Credential Issuer as RATS Endorser</name>
          <t>A verifiable credential Issuer functions as a RATS Endorser. The Endorser role in RATS produces Endorsements - secure statements about an Attester's capabilities, identity, or trustworthiness. Similarly, a credential Issuer produces signed credentials containing claims about a subject (the Holder). Both roles:</t>
          <ul spacing="normal">
            <li>
              <t>Make authoritative statements about another party's attributes or capabilities</t>
            </li>
            <li>
              <t>Use cryptographic signatures to ensure integrity and authenticity</t>
            </li>
            <li>
              <t>Are typically trusted third parties in their respective ecosystems</t>
            </li>
            <li>
              <t>Provide information that enables downstream authorization decisions</t>
            </li>
          </ul>
          <t>The credential issued by the Issuer serves the same function as an Endorsement in RATS: it is a signed assertion about the Holder's attributes that can be used by Credential Verifiers to make trust decisions.</t>
        </section>
        <section anchor="verifiable-credential-holder-as-rats-verifier">
          <name>Verifiable Credential Holder as RATS Verifier</name>
          <t>A verifiable credential Holder functions as a RATS Verifier. The RATS Verifier appraises Evidence and Endorsements and produces Attestation Results. In the credentials model, the Holder:</t>
          <ul spacing="normal">
            <li>
              <t>Receives credentials (analogous to Endorsements) from Issuers</t>
            </li>
            <li>
              <t>Evaluates which credentials to present and which claims to disclose</t>
            </li>
            <li>
              <t>Produces presentations (analogous to Attestation Results) that are sent to Credential Verifiers</t>
            </li>
            <li>
              <t>Uses their Confirmation Key to create key binding tokens that prove control</t>
            </li>
          </ul>
          <t>The Holder's presentation, which includes the Issuer's credential plus the Holder's signature over selected disclosures, functions as an Attestation Result - a processed, signed assertion derived from the original credential (Endorsement).</t>
        </section>
        <section anchor="verifiable-credential-verifier-as-rats-relying-party">
          <name>Verifiable Credential Verifier as RATS Relying Party</name>
          <t>A verifiable credential Credential Verifier functions as a RATS Relying Party. The Relying Party:</t>
          <ul spacing="normal">
            <li>
              <t>Consumes Attestation Results (credential presentations) to make authorization decisions</t>
            </li>
            <li>
              <t>Validates the cryptographic integrity of received assertions</t>
            </li>
            <li>
              <t>Makes access control or authorization decisions based on the claims received</t>
            </li>
            <li>
              <t>Does not directly interact with the original Endorsement source (the Issuer)</t>
            </li>
          </ul>
          <t>The Credential Verifier appraises the Holder's presentation in the same way a Relying Party appraises Attestation Results from a RATS Verifier.</t>
        </section>
        <section anchor="all-parties-can-be-attesters">
          <name>All Parties Can Be Attesters</name>
          <t>Importantly, any of these parties - Issuer, Holder, or Credential Verifier - can simultaneously function as a RATS Attester. The Attester role in RATS is about producing Evidence about one's own trustworthiness:</t>
          <ul spacing="normal">
            <li>
              <t>An <strong>Issuer</strong> may be an Attester when it needs to prove its own integrity, platform state, or authorization to issue certain credential types. For example, an Issuer might provide Evidence about its secure enclave or certified infrastructure when establishing trust with Holders or during credential issuance.</t>
            </li>
            <li>
              <t>A <strong>Holder</strong> may be an Attester when presenting credentials, particularly when the presentation itself requires proof of the Holder's platform integrity. For example, a Holder might provide Evidence about their device's secure boot state, firmware version, or trusted execution environment alongside their credential presentation.</t>
            </li>
            <li>
              <t>A <strong>Credential Verifier</strong> may be an Attester when it needs to prove its own trustworthiness to Holders or to upstream systems. For example, a Credential Verifier might provide Evidence about its data protection capabilities, compliance certifications, or secure processing environment before Holders agree to disclose sensitive claims.</t>
            </li>
          </ul>
          <t>The Attester role is orthogonal to the three primary roles - it represents the ability to produce evidence about one's own state, while the Issuer/Holder/Credential Verifier roles represent the flow of credentials and claims about subjects.</t>
        </section>
      </section>
      <section anchor="comparison-with-rats-interaction-models">
        <name>Comparison with RATS Interaction Models</name>
        <t>RATS defines two interaction models:</t>
        <t><strong>Passport Model</strong>: The Attester sends Evidence to a RATS Verifier, receives Attestation Results, and presents these results to Relying Parties. This maps to the three-party credentials model where the Holder obtains credentials from Issuers and presents them to Credential Verifiers.</t>
        <t><strong>Background-Check Model</strong>: The Attester sends Evidence to a Relying Party, which forwards it to a RATS Verifier. The RATS Verifier returns results directly to the Relying Party. This is a two-party model from the Attester's perspective and does not map well to the three-party credentials model, as it lacks Holder mediation and control over presentations.</t>
      </section>
      <section anchor="roles-that-dont-map-to-the-three-party-model">
        <name>Roles That Don't Map to the Three-Party Model</name>
        <t>The <strong>Reference Value Provider</strong> role from RATS does not have a direct equivalent in the three-party verifiable credentials model. This role supplies reference values (known-good measurements or configurations) that RATS Verifiers use to appraise Endorsements and Evidence. In credentials systems, equivalent functionality might be provided through:</t>
        <ul spacing="normal">
          <li>
            <t>Trust registries that list authorized Issuers</t>
          </li>
          <li>
            <t>Schema registries, or lists of valid claims that define credential formats</t>
          </li>
          <li>
            <t>Governance frameworks that specify validation rules</t>
          </li>
          <li>
            <t>Revocation registries</t>
          </li>
        </ul>
        <t>However, these are typically considered part of the trust infrastructure rather than a distinct party in the presentation protocol. The Reference Value Provider role is primarily relevant in scenarios where raw Evidence must be evaluated against known-good values - a pattern more common in the two-party background-check model than in the three-party credentials model where Issuers have already performed evaluation and produced credentials.</t>
      </section>
      <section anchor="application-to-sd-cwt">
        <name>Application to SD-CWT</name>
        <t>When applying RATS concepts to SD-CWT:</t>
        <ul spacing="normal">
          <li>
            <t>SD-CWT credentials function as Endorsements about the Holder (subject)</t>
          </li>
          <li>
            <t>The Holder's key binding token and selective disclosure act as the RATS Verifier's appraisal and production of Attestation Results</t>
          </li>
          <li>
            <t>The Credential Verifier consumes these presentations as a Relying Party consumes Attestation Results</t>
          </li>
          <li>
            <t>Any party can additionally provide Evidence about their own platform or operational state (act as an Attester)</t>
          </li>
          <li>
            <t>The three-party model with selective disclosure maps naturally to the RATS passport model</t>
          </li>
          <li>
            <t>Reference Value Provider functionality is addressed through trust infrastructure and out-of-band mechanisms rather than protocol-level roles</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sample-disclosure-matching-algorithm-for-verifier">
      <name>Sample Disclosure Matching Algorithm for Verifier</name>
      <t>The Verifier of an SD-CWT needs to decode disclosed claims match them with their redacted versions.
The following example algorithm describes a way to accomplish this.</t>
      <ol spacing="normal" type="1"><li>
          <t>The decoded <tt>sd_claims</tt> are converted to an intermediate data structure called a Digest To Disclosed Claim Map that is used to transform the Presented Disclosed Claims Set into a Validated Disclosed Claims Set.</t>
        </li>
        <li>
          <t>The Verifier <bcp14>MUST</bcp14> compute the hash of each Salted Disclosed Claim (<tt>salted</tt>), in order to match each disclosed value to each entry of the Presented Disclosed Claims Set.</t>
        </li>
      </ol>
      <ul empty="true">
        <li>
          <t>One possible concrete representation of the intermediate data structure for the Digest To Disclosed Claim Map is a CBOR map with the hash of the <tt>bstr-encoded-salted</tt> data structure (from the CDDL) as the map key and its value as the contents of the corresponding <tt>salted-entry</tt> data structure.</t>
        </li>
      </ul>
      <ol spacing="normal" type="1" start="3"><li>
          <t>The Verifier constructs an empty CBOR map called the Validated Disclosed Claims Set, and initializes it with all non-redacted claims from the verified Presented Disclosed Claims Set.</t>
        </li>
        <li>
          <t>Next, the Verifier performs a depth-first traversal of the Presented Disclosed Claims Set and Validated Disclosed Claims Set, using the Digest To Disclosed Claim Map to insert claims into the Validated Disclosed Claims Set when they appear in the Presented Disclosed Claims Set.</t>
        </li>
        <li>
          <t>The Verifier repeats the fourth step if the previous iteration resulted in any new Presented Disclosed Claims.</t>
        </li>
        <li>
          <t>If there remain unused claims in the Digest To Disclosed Claim Map at the end of this procedure the SD-CWT <bcp14>MUST</bcp14> be considered invalid.
Likewise, if this algorithm results in any duplicate CBOR map keys, the entire SD-CWT <bcp14>MUST</bcp14> be considered invalid.</t>
        </li>
      </ol>
      <ul empty="true">
        <li>
          <t>Note: If there are remaining digests without corresponding disclosures, this means that either the holder intentionally did not disclose a claim, or that the digest is a decoy digest <xref target="decoys"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>Note: RFC Editor, please remove this entire section on publication.</t>
      <section anchor="draft-ietf-spice-sd-cwt-08">
        <name>draft-ietf-spice-sd-cwt-08</name>
        <t>Normative changes:</t>
        <ul spacing="normal">
          <li>
            <t>Add more text about nesting validation in new section after Section 6.2 on Holder Validation (PR#292).</t>
          </li>
          <li>
            <t>Add optional key context to AEAD encrypted disclosures (PR#285).</t>
          </li>
          <li>
            <t>Use clearer normative language around CBOR tags and nesting (PR#262).</t>
          </li>
          <li>
            <t>Fix AEAD nonce length and mention that AAD is empty (PR#260).</t>
          </li>
        </ul>
        <t>Non-normative changes:</t>
        <ul spacing="normal">
          <li>
            <t>PR#290 / Issue #284
            </t>
            <ul spacing="normal">
              <li>
                <t>Clarify cnonce in SD-CWT is intended for 2-party model.</t>
              </li>
              <li>
                <t>Clarify Verifier behavior when extra disclosures are present.</t>
              </li>
              <li>
                <t>In elided KBT description point to fully worked example</t>
              </li>
              <li>
                <t>Remove incorrect compatibility discussion</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Rename device.example to holder.example (PR#289).</t>
          </li>
          <li>
            <t>Globally use KBT instead of KBT (PR#288).</t>
          </li>
          <li>
            <t>Add Appendix walking through nested disclosure handling (PR#286).</t>
          </li>
          <li>
            <t>Clean up AEAD encrypted disclosures section and justify used of AEAD (PR#285).</t>
          </li>
          <li>
            <t>Heavy editing pass (PR#283).
            </t>
            <ul spacing="normal">
              <li>
                <t>Renumber Section 4 to Section 3.3 as it is part of the Overview.</t>
              </li>
              <li>
                <t>Move normative statement from Section 3 to Section 6.</t>
              </li>
              <li>
                <t>Improve Figures 2 and 3</t>
              </li>
              <li>
                <t>Remove unused terms or terms used only once.</t>
              </li>
              <li>
                <t>Rearrange order of discussion in Section 7.1</t>
              </li>
              <li>
                <t>Clarify use of <tt>cnonce</tt></t>
              </li>
              <li>
                <t>Remind about special definition of duplicate map keys in To Be Redacted section</t>
              </li>
              <li>
                <t>Miscellaneous typo, minor rewordings, cleanups, and clarifications</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Update references (PR#280 and PR#281).</t>
          </li>
          <li>
            <t>Add change log for -07 and -08 (PR#279).</t>
          </li>
          <li>
            <t>Add COSE key thumbprint URIs to Appendix C (PR#278).</t>
          </li>
          <li>
            <t>Explain why SD-CWT specifies claim requirements (PR#276).</t>
          </li>
          <li>
            <t>Reframe nonce/freshness text (PR#275).</t>
          </li>
          <li>
            <t>Reword discussion of Verifier use of Issuer keys (PR#274).</t>
          </li>
          <li>
            <t>Justify linkage between KBT and CWT; move revocation discussion to its own section (PR#273).</t>
          </li>
          <li>
            <t>Replace blind with redact and unblind with disclose or reveal (PR#272).</t>
          </li>
          <li>
            <t>Remove redundant Section 16.7 (PR#271).</t>
          </li>
          <li>
            <t>Explain why Issuer should verify Holder key (PR#266).</t>
          </li>
          <li>
            <t>Reword applicability and linkability discussions (PR#265).</t>
          </li>
          <li>
            <t>Reword disclosure threats and mitigations (PR#264).</t>
          </li>
          <li>
            <t>Improve Determinism section (PR#261).</t>
          </li>
          <li>
            <t>Better explain To Be Decoy integer uniqueness requirements (PR#259).</t>
          </li>
          <li>
            <t>Temporarily remove Rust CDDL tool from cargo.txt to solve a CI issue (PR#267).</t>
          </li>
          <li>
            <t>Remove Mike Jones from Acknowledgments (except in list of SD-JWT contributors) since he is already listed as a Contributor.</t>
          </li>
          <li>
            <t>Allowed then Reverted that media types can omit <tt>application/</tt> (PR#283 then PR#287).</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-07">
        <name>draft-ietf-spice-sd-cwt-07</name>
        <ul spacing="normal">
          <li>
            <t>Replace claim requirements with tables (PR#258).</t>
          </li>
          <li>
            <t>Explain To Be Decoy integer uniqueness requirements (PR#257).</t>
          </li>
          <li>
            <t>Note that Holder needs to verify disclosure of all decoys (PR#256).</t>
          </li>
          <li>
            <t>Discuss security considerations of decoys to Holders (PR#254).</t>
          </li>
          <li>
            <t>Remove discussion of Certificate and Key Transparency (PR#253).</t>
          </li>
          <li>
            <t>Remove Threat Model section and add reference to W3C TAG credential doc (PR#252).</t>
          </li>
          <li>
            <t>Address several issues in PR#251:
            </t>
            <ul spacing="normal">
              <li>
                <t>Modify introduction to remove "mandatory to disclose";</t>
              </li>
              <li>
                <t>Note the confirmation keys are mandatory early;</t>
              </li>
              <li>
                <t>Replace "based on" with "inspired by" SD-JWT;</t>
              </li>
              <li>
                <t>Move text from the Introduction into the Overview;</t>
              </li>
              <li>
                <t>Move Figures 2 and 3 into the Overview;</t>
              </li>
              <li>
                <t>Use rounded corners in Figure 3;</t>
              </li>
              <li>
                <t>Clarify opening sections;</t>
              </li>
              <li>
                <t>Add "generic container format, not a specific credential type" language;</t>
              </li>
              <li>
                <t>Move normative language out of Introduction;</t>
              </li>
              <li>
                <t>Represent no disclosure by omitting sd_claims;</t>
              </li>
              <li>
                <t>Reword discussion of typ protected header;</t>
              </li>
              <li>
                <t>Clarify language about claim "name";</t>
              </li>
              <li>
                <t>Replace a lowercase must.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Allow Holder to use cti instead of iat (PR#250).</t>
          </li>
          <li>
            <t>Add Figure descriptions throughout (PR#246).</t>
          </li>
          <li>
            <t>Improve Figures 2 and 3 (PR#245).</t>
          </li>
          <li>
            <t>Remove the description of "custom" claims (PR#244).</t>
          </li>
          <li>
            <t>Add note about Holder choice of order in relevant section (PR#243).</t>
          </li>
          <li>
            <t>Explain CBOR-specific terms and concepts: EDN, CDDL, tags, simple values (PR#242).</t>
          </li>
          <li>
            <t>Add Holder check for sufficient number of decoys (PR#241).</t>
          </li>
          <li>
            <t>Explain why legal CBOR simple values have a gap (PR#240).</t>
          </li>
          <li>
            <t>Clarify legal range of floating-point dates (PR#239).</t>
          </li>
          <li>
            <t>Make CDDL consistent with IANA section: use uint for To Be Decoy value (PR#238).</t>
          </li>
          <li>
            <t>Split the CDDL into individual fragments; add sd-cwt-preissued type (PR#235).</t>
          </li>
          <li>
            <t>Rewrite the Makefile to automatically run validation against the combined CDDL (PR#185).</t>
          </li>
          <li>
            <t>Move note about redacted array elements (PR#196).</t>
          </li>
          <li>
            <t>Expand discussion of random numbers (PR#231).</t>
          </li>
          <li>
            <t>Fix a few places where lists missed an initial blank line (PR#225).</t>
          </li>
          <li>
            <t>Remove assumption of claim keys being used often (PR#200).</t>
          </li>
          <li>
            <t>Remove extraneous trailing dot in references Section (PR#228).</t>
          </li>
          <li>
            <t>Distinguish Verifier-Verifier and Verifier-Issuer unlinkability (PR#223).</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-06">
        <name>draft-ietf-spice-sd-cwt-06</name>
        <ul spacing="normal">
          <li>
            <t>Refactored deterministic draft generation code (PR#152).</t>
          </li>
          <li>
            <t>Added pointer to a Python implementation (PR#155).</t>
          </li>
          <li>
            <t>Added decoy digests (PR#157).</t>
          </li>
          <li>
            <t>Addressed early IANA feedback about the escalation process (PR#160).</t>
          </li>
          <li>
            <t>Used the CoAP Content Type in the examples instead of the text strings "application/sd-cwt" and "application/kb+cwt" (PR#162).</t>
          </li>
          <li>
            <t>Added a section on specific CBOR encoding and data model considerations (PR#163).</t>
          </li>
          <li>
            <t>Swapped the order of Sections 5 and 6 (PR#167).</t>
          </li>
          <li>
            <t>Split the CDDL definitions for payload maps in Issued CWT and pre-issued (PR#168).</t>
          </li>
          <li>
            <t>Used the IANA early assigned values in the draft (PR#169).</t>
          </li>
          <li>
            <t>Defined the To Be Decoy tag (PR#171).</t>
          </li>
          <li>
            <t>Made use of the CoAP Content Type a <bcp14>SHOULD</bcp14> (PR#172).</t>
          </li>
          <li>
            <t>Made the draft generation code agnostic to hash algorithm (PR#173)</t>
          </li>
          <li>
            <t>Added time claim verification rules and security considerations (PR#175)</t>
          </li>
          <li>
            <t>Instead of an empty array, <tt>sd_claims</tt> is now omitted if empty (PR#176)</t>
          </li>
          <li>
            <t>Update the COSE header values to use their newly assigned values (also PR#176)</t>
          </li>
          <li>
            <t>Fix some kramdown-xml bracket errors (PR#177)</t>
          </li>
          <li>
            <t>Add IANA Considerations for To Be Decoy tag (PR#180)</t>
          </li>
          <li>
            <t>Clarify that remaining redacted claims are removed in validated claim set (PR#181)</t>
          </li>
          <li>
            <t>Restrict floating point dates to -2^53 to 2^53 (PR#182)</t>
          </li>
          <li>
            <t>Rename CDDL production using a standard prelude name (PR#183)</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-05">
        <name>draft-ietf-spice-sd-cwt-05</name>
        <ul spacing="normal">
          <li>
            <t>Added this change log (PR#150)</t>
          </li>
          <li>
            <t>Moved non-normative validation algorithm to an appendix (PR#149)</t>
          </li>
          <li>
            <t>Added appendix describing mapping to RATS concepts (#147)</t>
          </li>
          <li>
            <t>Provided guidance on choice of AEAD algorithm (#148)</t>
          </li>
          <li>
            <t>Fixed algorithm in COSE key examples (#145)</t>
          </li>
          <li>
            <t>Updated contact information (PR#142, PR #150)</t>
          </li>
          <li>
            <t>Removed SPICE from the title of the document (PR#139)</t>
          </li>
          <li>
            <t>Made clear extent to which verifiers cannot process unknown claims (PR#138)</t>
          </li>
          <li>
            <t>Sorted CBOR map keys in examples to facilitate use as test vectors (PR#135)</t>
          </li>
          <li>
            <t>Consistently use term "tag" in context of AEAD algorithms (PR#134)</t>
          </li>
          <li>
            <t>Improved AASVG diagram in Terminology section (PR#129)</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-04">
        <name>draft-ietf-spice-sd-cwt-04</name>
        <ul spacing="normal">
          <li>
            <t>Place value before claim name in disclosures</t>
          </li>
          <li>
            <t>Use CBOR simple value 59 for the redacted_key_claims</t>
          </li>
          <li>
            <t>Greatly improved text around AEAD encrypted disclosures</t>
          </li>
          <li>
            <t>Applied clarifications and corrections suggested by Mike Jones.</t>
          </li>
          <li>
            <t>Do not update CWT <xref target="RFC8392"/>.</t>
          </li>
          <li>
            <t>Use <tt>application/sd-cwt</tt> media type and define <tt>+sd-cwt</tt> structured suffix.</t>
          </li>
          <li>
            <t>Made SHA-256 be the default <tt>sd_alg</tt> value.</t>
          </li>
          <li>
            <t>Created Verifiable Credential Type Identifiers registry.</t>
          </li>
          <li>
            <t>Corrected places where Claim Name was used when what was meant was Claim Key.</t>
          </li>
          <li>
            <t>Defined the To Be Redacted CBOR tag</t>
          </li>
          <li>
            <t>In the SD-KBT, <tt>iss</tt> and <tt>sub</tt> are now forbidden</t>
          </li>
          <li>
            <t>Clarified text about <tt>aud</tt></t>
          </li>
          <li>
            <t>Described Trust Lists</t>
          </li>
          <li>
            <t>EDN Examples are now in deterministic order</t>
          </li>
          <li>
            <t>Expressed some validation steps as a list</t>
          </li>
          <li>
            <t>Clarified handling of nested claims</t>
          </li>
          <li>
            <t>Fixed the handling of the to be registered items in the CDDL; made CDDL self consistent</t>
          </li>
          <li>
            <t>Fixed some references</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-03">
        <name>draft-ietf-spice-sd-cwt-03</name>
        <ul spacing="normal">
          <li>
            <t>remove bstr encoding from sd_claims array (but not the individual disclosures)</t>
          </li>
          <li>
            <t>clarify which claims are optional/mandatory</t>
          </li>
          <li>
            <t>correct that an SD-CWT may have zero redacted claims</t>
          </li>
          <li>
            <t>improve the walkthrough of computing a disclosure</t>
          </li>
          <li>
            <t>clarify that duplicate map keys are not allowed, and how tagged keys are represented.</t>
          </li>
          <li>
            <t>added security considerations section (#42) and text about privacy and linkability risks (#43)</t>
          </li>
          <li>
            <t>register SD-CWT and SD-KBT as content formats in CoAP registry (#39)</t>
          </li>
          <li>
            <t>updated media types registrations to have more useful contacts (#44)</t>
          </li>
          <li>
            <t>build most of the values (signatures/salts/hashes/dates) in the examples automatically using a script that implements SD-CWT</t>
          </li>
          <li>
            <t>regenerate all examples with correct signatures</t>
          </li>
          <li>
            <t>add nested example</t>
          </li>
          <li>
            <t>add optional encrypted disclosures</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-02">
        <name>draft-ietf-spice-sd-cwt-02</name>
        <ul spacing="normal">
          <li>
            <t>KBT now includes the entire SD-CWT in the Confirmation Key CWT (<tt>kcwt</tt>) existing COSE protected header. Has algorithm now specified in new <tt>sd_alg</tt> COSE protected header. No more <tt>sd_hash</tt> claim. (PR #34, 32)</t>
          </li>
          <li>
            <t>Introduced tags for redacted and to-be-redacted claim keys and elements. (PR#31, 28)</t>
          </li>
          <li>
            <t>Updated example to be a generic inspection certificate. (PR#33)</t>
          </li>
          <li>
            <t>Add section saying SD-CWT updates the CWT spec (RFC8392). (PR#29)</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-01">
        <name>draft-ietf-spice-sd-cwt-01</name>
        <ul spacing="normal">
          <li>
            <t>Added Overview section</t>
          </li>
          <li>
            <t>Rewritten the main normative section</t>
          </li>
          <li>
            <t>Made redacted_claim_keys use an unlikely to collide claim key integer</t>
          </li>
          <li>
            <t>Make cnonce optional (it now says <bcp14>SHOULD</bcp14>)</t>
          </li>
          <li>
            <t>Made most standard claims optional.</t>
          </li>
          <li>
            <t>Consistently avoid use of bare term "key" - to make crypto keys and map keys clear</t>
          </li>
          <li>
            <t>Make clear issued SD-CWT can contain zero or more redactions; presented SD-CWT can disclose zero, some, or all redacted claims.</t>
          </li>
          <li>
            <t>Clarified use of sd_hash for issuer to holder case.</t>
          </li>
          <li>
            <t>Lots of editorial cleanup</t>
          </li>
          <li>
            <t>Added Rohan as an author and Brian Campbell to Acknowledgements</t>
          </li>
          <li>
            <t>Updated implementation status section to be BCP205-compatible</t>
          </li>
          <li>
            <t>Updated draft metadata</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-00">
        <name>draft-ietf-spice-sd-cwt-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial working group version based on draft-prorock-spice-cose-sd-cwt-01.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank those that have worked on similar items for
providing selective disclosure mechanisms in JSON, especially:
Brent Zundel, Roy Williams, Tobias Looker, Kristina Yasuda, Daniel Fett,
Brian Campbell, Oliver Terbu, and Michael B. Jones.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="M." surname="Jones" fullname="Michael B. Jones">
        <organization>Self-Issued Consulting</organization>
        <address>
          <postal>
            <country>United States</country>
          </postal>
          <email>michael_b_jones@hotmail.com</email>
          <uri>https://self-issued.info/</uri>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y96XIcR5Iw+L+eIgc0GwJSFZD3AUrqAQ+12CNRXJHqtv60
HCKPSCCbhUpMZRVINMl5lu9Z9snWj7jyKBzsY+dbG7S1CFTF6eHh4bcvFovZ
1bETzDbNZimOnb1XYinKTXMlnKdNVy7bbrsWzpPHP//i/EkUzuv2nVh1zv6r
p4snf3p9sDfLi2ItrrAffbI3K/ONOGvX18dOt6lmVVuu8gsYt1rn9WbRiE29
6C6bUiy6alG+3yzcdNZt1iK/OHaeP3v9veM8cPJl18KAzaoSlwL+s9rszZ09
UTWbdt3kS/zj+clj+Kddw2+/vP5+b7baXhRifTyrYPLjWdmuOljltjt2Nuut
mOUwPu2s3K6bzfXe7H27fne2breX6lPhvMw3G7GGrdUw6vMV/i42zpP1M5wf
Zu32Zu/ENXSsjmfOwinbTtC/7zf4T6eBVmmgza7EagurcZz7T+U4m+tLPI0/
wUqb1ZnzexwCP7/ImyV8TjD8NwTnYbs+wy/ydXkOX5xvNpfd8dERtsOPYE2H
qtkRfnBUrNv3nTiiEY6w51mzOd8WCHE8nfdnfEBHO04MeywBzN3Gmq3X85AH
PGzaXWPs+vzwfHOx3JvN8u3mvF0j6Bbwf8ept8slo9HeT015noul83Ldrtvy
3R59D3vLV81f803Tro6dCwHgh9npKyEBdnHJHf5Nfbs3NfrP60Y4rzYCjnNq
5NfrvBJXYt3U11VvdEBM8W/t2gtoYD1yswIU/OHQedys3523y7/ShzzVD2L1
rv85THXsfL/Ot6vzthZr59Xz1/S5umETX8npz2Gsw0KOxUgBV2CTlxtqhfdL
wGn9ci5gQZt13nXCSSL6rmwrWMzDOPSz6CF/Ajfk2Hmary+6TV5tZKvtaoNX
+vdifZGvrgc7/OXQ+Sk/vx4A85f2PF+ZL3qQ7AFvjQ0JSf/tDD+CxV8AEHEL
66bYbmxMoPl+OnT+0K5EN5hQocZj++v+AQJxqxfPu24rKucJUIntcgO3q7/H
X1fNBr5+tUEktxd6weO/Ld7+BYf/t/N2o5ZLzYC4wFnIG9HhTA3NdNis6vZo
Nlu1ADwkEridX75/kmZhhr8+fvLSd6Pj2QzbDZp4fix/jbMkkL9mmevBXp4u
/vAnxIPni6eH1oVq8fbghfoLkNerUjVc/PGJ7O3F/rHzZKInEDjAjlW3gLuy
acsW9vzv2GyzeAIkTcCeOz65Tb4+Q4wy11+ID5fLdo20RgiiNUD5txdA0I5C
3/fiKOOO8pGxR4Sr3Fzl5bXzWFy3q8p5tzhZtavrC8BDJ4e/l4unAJB1R5Qb
ByEi7/iumyzceOGG8OGfgievT36/eLIWkoYuToptJ6ZX+z4oN/mZRaUu4X5B
t0VpuufY/ai35pfcCqnx5lw4NIHT1vBMwkj50jGTd7xOQ8X09YZ1Oq9Feb5q
SuhxgvR5Aw8HvgpE4Wez2WKxgCuP1xSu7+z1edM53aUomxq6IBI7lehKuBei
c3IERQ54uWouJIo7Gxr9P7eCXhdc4nvY5/gBh7e6OziE8YWTX8J55+W5A1PB
/bpsYCNOcU27nOQG/vDq5xdmMGIGAMEO5jwVXJLVGaxu08JL3pytrAX8XPwF
RnNewacIRjzdZ6tyfX1JS99/8vOrZwf0Ka7uUALjoqmqpZjNHuBbuW6rbYmt
J0EDB4iXFgCzEu8dvkxOkXewHwTN+ZCRITAcDAb5+PFf8OYFmf/58+Hs+cYR
q7xY4oag/w/tsgICDMee4yJxk/LFF8iO4FaBCFc8JBxxucybiw5e7fU7WETe
GU5hea164ugK3kSbzPgAUiDuDiBop1EPp5LDIoidP+J71Ij1zYfJZwSbW/Bv
nz/feFxAfAnZW2RT1u3FPc6P4Ze5EcBPHebhjAHX4c6YU3TMbeucMsdNtoBm
CIQGeKKztbr/eI2wHT5M2J1HWpQIiJUDvBQ9Enjq8K6tN7xdGE+CcgJG8hCR
z+RZO+eyhc5dh9uAKXARAIG6IWoMn10IgHvl7FeiblYwQ6PRJAmTz58PcBZJ
RaDjJS/8Mu82AheYl+8QmwlhFVl0eCjE1TOgg+umdOjNhs/WEnPnzqrdwPcK
PS2IEXt4OPseUE58yC8ul2IODZfASQHni4tpL8U6x9mdK3HelIBgBEq7SXNx
2a5x/Eu+VHDwy6VaBOBmDZwGLtRAGPYgzw42soXXE+ge4q6iNCXctA4xFmjE
ZZ9aysMgVFqKfE34c96+72EB8Ok4ToXD585a/OcWsBeBdSjn7ei4mgqH5zej
uaADxEaARe3FZY74Drtbi7MtMMBESfAWwdtNWFbAcrdrWNJa9dW0TtJzeNsX
m+aC/0aoFfmG7lO3zVfA3QIleuD80JydL36ELS6d75ft+9nsv/7rv5w8767O
ZnKru38k+u36UbgK78anG0ahn1sbOJ/uMszXQGe//tuH+UT//3dxDXzi6vZh
foEDBjFC0QPT6Js7rQZa3fhz8xD32tTtw9wKwbuf1CeETAWvv/OEqfwXDHMb
BP9OeHN32Nz0811/GIUWL1q4bVOr+UWUAjmSId7cNg9M9E+8U7fi5+Lr+69G
bX0nbO42zGSLfzqhUCylcLr2QuBrtxKk1LnzMIzmOTxb8tEe3pj/g2EjLloS
1jdi1OIesHlp+JovXs0tLe4/zEtmZ3sX+M4g/ifdcHjPZx+PnQd1c7Y4x8d+
iY/9oobHniXCb/d+0B+rnTyXPAKxDXKXzEAik7AHDM4GVY8LYBMWLTHN3bd7
i0V3mZei+9bf+6yYxCY/W+cXwLBcomzIogdP3RIjwjNIsQCZXV4AMZnAHOXQ
WWyQ3V4Bwei6fH2NPbvtJbF8MFqHLFSL34lO8UVtQexnBYwPsW2oCsD2Hd5J
pRLAtYBQhaxau93gveuA4WUecDOSyFCGewAS7xpk1HbZnl3zAt8Bi4Cq1M7Z
++nXV69Ro4v/Oi9+pt9/efZ//fr8l2dP8fdXP5z8+KP+ZSZbvPrh519/fGp+
Mz2f/PzTT89ePOXO8KnT+2i299PJn+EbhN7ezy9fP//5xcmPe8jOb3rMOW4P
AFawLLIGQG9IfJsp4ZtEgMdPXv4//9sLpSjge14GEo+UC7wkhD9QeuPZ2hUI
fPwngP96BnIasME4CpIvOGjUIQCniiIi8MUrB7loAN9XvyFk3hw73xTlpRd+
Jz/ADfc+VDDrfUgwG38y6sxAnPhoYhoNzd7nA0j313vy597fCu7Wh9/8bgmY
5yy89HffzRhHSOCUwk03fUIMKPiK2j77sEFrQQXPSn62ajuQGOGdlPdv/9nT
FySaosqLlF1l0a4Xolotlg2cMMAepX1o5eCluiCBH/UccwdEH6fZ0CVRwhEI
GiRx8NHKL9dC30c40RWp8XhlKKxB22ZVLrcVXq3iGqg6EHf4HT7f5GdnsOyr
fLkVckjq1jW4d/k5oMJTUva0lSApDd+GBqUehIRBS3l3EYDAIzRwz6nbU5Q2
GwLFjyDvb/MzAfL606c/Knk9jT0XITClVtkikQAgXShdACkSjJZk7qDk3xf8
9R/B588z3NIfdKckwosiaRUPS++28yJHNoB/BylCgoL+/CMCQW51KIJLTc20
royFbKKf7RIoKEIHlUM07zEItLebu7S163h27JzQ7llHwswGqYdw2CkjELdE
elc0Kzx7WCcKSI/5LzXBvz+2RycZGDVLFg/QV1DkU+oJJB5dWzY50iqa134Y
WKbASZ6vlIJjIz5smHUaQm7OMvTlMsfXrHcINHJD4vYaEP6y5Z3w+EId2A95
d444K1m8e82rhPzceZUvN3SjeRQ1+HtSgp3DFM4FCuekRplYAJMNuGqAWAYS
U0d+j/Whkq1ollIbZSkFbV1gDo9t0YmNsw/EYC4ZXHgikcc9UP36KyYiZ5/Y
Cemz8HwBYxg7EJEIO/rqQnzbUXWne9vEBtuJVQ9+f1Qk5YmNRTtnMfvjWRxA
110T8CVA+8nk0eGkvGiaauWg7mdzzUwFK6LoMNU2JMXFaeylz2klFpr3YAVz
8JIn5yAa3fEuehNo6BHduW0jgyU4Q1DCIpQmZ2IZQNSbSuqqXwJbiDo9QI/v
t/B0WIQINZkS/Ii4kyvhM+v4O6JJ8myYSJJma4XsG2/nXORKgz2iDr3Lw+PS
JauaM5TIifBML2I0BO/5engrkfbBPgefPluSBo9BAzMC4yVWivyoXczwZC7z
62Wbs4p3B8kB2XixHq9FgoameA9ToG5Vz9C/TvJEbyAou+AmrxA+bAQ4JtX0
lV4SPaHwkOeXbL4BAr8lE9B4OAmX0ZCASxJig1Hhcq7X+fV4YCmMTOCx80ro
Cejdw4VZt+KvYt3ikV206yHFwu12u48T7/ofJZ7ff15iouyjVDYPOkBUMcv7
1z87UnND1wk7ixnjUkOjR+EeOe1Fs9mo2bcr0xEN5yjZkQFjCgo47w6sthee
s2qc2ESJS+26OWtW+dIgFYhMP1+J9VUDfAraSyZZlD+91tp4qezv0MiFfxsA
o1HE6cksfZ5p2FoxuION9V8NhjQ0Pm/xqWPd+g09mJUgjWa7VrQJ17JdGfRt
1xfGSCRHth9UVg7pd9TS+ew6jf57gZ+A+EWKfzbWKNGZjfSa9BP7bpYykrEZ
w1bXFpNHO1TEnp9xZweTpx+6q55B8SGDft3qXZGBY8Oicp/RgrkMCerzgfuX
W2BFywPstYPR2eXK1R0oNUAFRLG9ZmwRq6tm3a7YvKIROF+u4RG5lrIG2WWI
ZKKQv1YGxbmDBiCn4e1seDKFXyu0UOGS8+Vi0y70KZeKR3jdY9iVPgSdDKA7
Q24tlrTr7ry5xBdj8x4fDZrsfC3g+xZlODwt/IwookDDqNZ7zC1haWNUFLaE
ManRMKaevkbq67vpqPjnUCqqlLWI1cVfq79fyuMnMWhKP6Um+tqa+pPi1F4S
GuzqTL3HmrBPzH0YcjDZd3dveGIWykgm7zvA66gSZXtNxjxgIbodve8INFKZ
88/V7A59DmefJEAXr+ixOHZeIgIRfy83+jUsSZtceo+96JlePt1lQljgJ+cE
oLiDaRyNddOYZrOfrG2PgXUD3ikss22OCtMUrtiYNsQrM/wn5wkb3J9aZG/H
ae4+0ekt3fX0+ztT2K6Pdkxyp5D3092xTU0lu41wSWPQNPJ8+qLZFl+r2dT2
pCByfDNS/W2z3f/nbjg8nu9uSL0TpyVGq9fWRmhFOjXxm0Ln3Zflb8VNxMib
2d1J6N3h52tjjVjgq7ZoVpdbfJDZDvGc/5JaE9Ic0UP3CzS9o80B+Cskieqd
5ZeXn9luIy47FmS0IwqjeSHwpmkWTr60K4vdnn5f9TDEyVhK3d7b+nUfAp9s
Gqag93X/5NS5fXK8Q5DHLy626GeHjDHzRcgWzXUb+PlZ8iDLa1Lp6ua0vzu1
/EW9c8goksNMKWaTuENbML4ht27BP0SPQppk+t7by/sNxf85q4rnuM0304u4
FYF3KNymr7+5VLcisPVA9Ex0n5zgUNFLQAd24LMbXPEf99kFdfg0Kb5P/nyy
p7jTRDftJzyEmUmt0NkiCHHI/5CN7Tcs9UnVyMFoY/cg76bH7es6HPT45Pys
JFl733C/tZrl07AHiQ03HdSn+66KCfwX7/xvQYIrc7R/E/GKDpXtuNNaSPuy
72ADdpMd67G8dfJYX8cbqc596crUGe+jv94WPrRQdrjA24+gv/wEQxHYIkC4
dS6VdvJy2GAkrUQJgvhaq2C+cHM2uu/LMfu7GmzuTj/9V3+7qjbr5nIhtZj8
8v+CHzv4ufOXdrteiWt+qPvQvhMP8OCBZdpCy/6U8mA2eyzQC6Fh1kAClRQy
UsnVodjIzMIGGIJ8Te6/pGxlZmDKSEZe1mjSbFBCRJcCu28p1e2WJaKn9Hin
LIU1jgp8xQbtnNtOGY+1UuG1WTLugK3HBW9o5aDp91b78It2I1gPQhZFMxcq
L9+h5knbpMkqoszXVUsgOM9hhc9PXpygeypsFtGEvZ1hU9hdckA0NzJjs4+E
kkeopIL/eo5jB10RM3EoJ9mby6bdtoD/+r2m52xCGDYVHy7hvyE29RI/CgI3
dt25c+S7frhws4Xrv/ay48A9dt3/dST7rIoa/hupPn4YpGGvj4d9/Mju0wDA
jpzY9Al9d9ynP0+5wnlS7PNR3ssjCrsjlRjCwnyBX73b4KeOd+z4c/z72RMf
P7dalOsr+O8CWnjU4uXCj+Jeiw84grPwj53zh2kUhaLwk6gqq7guKq9M8jIO
vTz3y8ytMt2t/wNb8uvKrQLYWhHltZeWSVnGXl5FfpL71cO5Nd81zxfgfGEF
Ewi/jJNEZHHllmXqR1kSR1EpMr+KdswXuUEdhX4WVGmSwmI9kWSlCJPE9bIw
CIOHst9n+vezPPmLttu8BUoFb8xbjBIQxMO+vUQX+gpO13U5dFI2l03a9Vvp
P/6WAy6xJYBz7+Txk6cLzw/CKN7rd8FRyc6FTX04st/0PrwozKLYTXx3TsDw
YcWAcQs3ee0lx4EPyGAdjhd7fpilYahb+x61Dl/77rEXDlsnoeuGidU6ACxb
eDQ24Jpu/Wa83mXLqj5ccmAj2Z6MEduDLW+7vZ5+7KgfN2atZQ/vervCTmXe
7wS9noDEWLfrVZPbXS7hfPLlW4zOw35Z6KUpBxV9nn3u+aZhDC0TOJAv5bPQ
1+o7f7qBoivxzyJlkpJXAhg5toSZEAs2PhlYKW010ByMDDmWz0LXHdV5s0RX
mi3KJRzUoTspAPMXKiSBUUqNqFFuriMX2ALJVlMKi7FmJpOe7CMq6aPPj8UZ
mUG0+p4MZcZgNJud4AKc9+12WcEk78jsMGU9IuODXF4vBMeESmgbgP1SWN1M
ONA1vQeF2BUPBE8iAHe7Zrlcx3j0wQs4stl2A4hpuOIdd/iO28BH+M21Wlxi
9HgMjgYpxMh6lS/f59fd0IilbFcn9QYNLOap1orfnScwt813FAtDJ9x32eGu
x8PnkV+EBVoCPXwT0v3f5GuJg8n58F4dsYikreBHzjffOOpxzZdnRIj5fV0E
0Rzfj1fwsDnqNXrXVNyEHsuH00/wES0GnqfgoXphN9eXcugY+gGZnmOA++Xl
UpoTjjjwWT3d1Vtei5e4uBLoBH+8+uFEPVSfne++m+vt2Gb9I70bGESeGY6D
JBfXQTjL57dkg4ilxzWU55tvfus9NEeoWMANnD8schF7nhsnRZECqU/jJEuq
3BNFUUR+nQbWy0Y9SRkBXSdeB92GFnqEr5hHa9/10FgrfMMQuHW5aSXSOHc9
vwjcMIC1izCMkiIT8ILnReruWq55luwVAYSTxfeiWOAr9QWrSfI6cVPgCNwi
r0QRJVWYiTwIYz+BZz/yd64Gnr3J1YRyNb73BasRwJBEZeAGURXlYV37dQSs
R1aJKk6DMhU7jxIfsOkTVK8cLZN//3bybbvrGoOk9IMqFGVYFW7qxrHribiI
qzKOE7eqs51r5Mdy1zLtl3W8JlSbfTYXTEkLPWqhWfH78OL3YcYH3LjFJgev
XZ/Z5K/daabccOXZoK+PfYktH/TVzPmAOx/2nZpXM+n/w6X/t+HSb2C5j4y2
fsARTFO32N0/f+gVSQ00oazDwvMzN0E+PKl8Py5dpGdBf8tFmOcefBe7QEiC
Avbqw0NRBgDcoA7q6uHB/C7LmSRvtJw4zOuyrAI8qioP3Sjws7zKgJQJry6C
uL+c1EMKktZVXSWZCHLPTUWdRilQO094YWwv5/5CgzMhNTgkNjiTcoNzL8HB
gIcf9LekYDiSfuH7UXbQO9wBRJkGW8Phz/lDtwqLFA7DD2o/TXIvzlKg/1Xh
RUkMD3Q4QOAccLsuktCP3VgAGF1X+F7oxlFc5ECFNeKOprfo7GgNpVskSZjU
WezWpS8A6YDIhwnc21rAoXiDNRRJCidXJHEKdwyIexxUZZrBwaZ1lHpRrdbw
pnd57ge8MSrexIOcP8zrAGlOUBe5V7kp0Mw0Dv3SdQuRFH6dWFsoCjcqsyqt
i9grYb+BWwE21kUYe3EeZxKEb0bcHTK1OaWGOIIJgY+Bd9ALYgG4Dr+JAHAV
HkV4wAFmRb6D8MR4uqFIwqCCCyhEHkVVUIiqrgHbczE8bvVTBSXcWT8VRV2V
XpLBxYFDSKKwFJ4XBv6ObrUv4izPfCHg3yioghSWF6Vp4AIRiyJ3FzX2ssjL
00CEAniSOEr9tCiSDIiyKDxA0p3dgP1MS6BIpfABmqKGI8gzIK1R5meZeDh7
c6Bl5SLvmpITsqyR49bG0573F8u7wCFb3DGKyK/GMhzy0l8ppPlKyUGSYzgk
t8a+39ZXZsyvUP9o2RFvctSV35xqtv5UfaPDvAaJAKj5Liw+VS7C3U5f3rnS
xeKqSZd7KdYLs3pnDdIjiHBsc9Rhl6wAt4M22Au6L7Gpw/s/RNAwqpZ1t7Fh
oFQtHKUkI48qE3m0UpFHOiwoVwqTnXNXA7UMpvDozACMJjQjBqRtrheX62al
vCdRPO+05X6fMBlWtWjrBcVWqZgldm4nzT+uhDNm1KzBx5wbB7aQzfPM0mD6
Bg5+HrD38X5wgECM3Lv0wFCobt+LDyTcbzt86OLFCw6gAozBXnFxl4nQ52vf
89Q8oRcCkwysbhV4gR8EwIRFQdzr0cMn7Aa8kevV0S0TbVfsmLwPuKbpTw9d
VvAqyrt1B1yYD0+7weDAD0ACyuYiXyoNHqVhac/W+eU5oB/avWz/RrKD5cuz
Fo74HG4/5dyoG+MBfcq6hzFx0ZRtQJi6ORNEzLBjwtmUaWjS3qdtI7B8mXtI
RhZcKVPxMHJB22vQp/Z04kk/dWAXS8bgkcs++gDtKzdOSR8P5uyFjEmCYIeV
9Jif7K88uPdrm75yqKtw+p7p2iUfoHI6ZMVPD5gQzqqsqt0A+NYkrMsCuOIo
SbwkBH5UgLSXApMNfIULPGvph3UYuXku8rIKgWWIIr8I6gE+vfrhhMQjFRlw
J3Qa48/3Dbm2YEgLOm8SuAa7o/dCWrmIhEhfk12HDe1N9Mauo2PQ91SI+sSl
jY1CtzjIGvZ33og1JjG8RlrXc54vZRTK8LW5Fx94Hy7w/OFtZ6lfktsOVT9o
R87h4SGrfAfgH0ODFdZnLQUKo4T6Zj5Ajtv3oqKFWPcr0+KZM0DU+KW3DlsP
TGcnkZ7ZoXPAiyXGgC2bs/MNKbSlZhxxaxyJgGGTcNel/YJiOI3aHogeJvPp
KY7pjmpvho8PZA5RbkrvK6z4T8o0IAd6n5PzOir1yXPf9uO/Q3iBhqKKz202
cA/eUeSWsklguysd62CCADFGnxz1zgWB+SYmbjcLeDh73oszrFrB4UvWRNfa
TA7LowBxDGW5A+fYZx3ZFoKUoRrspZdG624s5r71fh5ItpSlUt3CaAgPjE1C
5Otlg68CaQIUWVV88Ii0SkzcNxqMg0mu81bN+P9oxf/ZWvH/FnroN5rJR28P
Tiu36AX3MDk1meMeUoQS3hR59wehQJJf37OJkb46Mq0ZhtKL7hwzYNKdld67
lLuw5UdY0nx565Gp7NQtwABc+QKeltReX6mPH98VG01S8Sro190azdjZbglV
2jS0pzMZOWXeaTXCMACPJY8RVCznHQreVkyUhgvsDIPKx+RPkg5Deyidp5Nv
q0aoXCsqmIhhJ8O9YCBM51ZPJPfT52iFWVHE9cB/Z0kO1cqRiHyF5vZjadLh
9UJVndN38C6dAn0bBAU7lG9yJOMzCzvOLphFfkpn+L2EFia7NdS6EwIaUvrP
fIneXCuMnFzI7+k9vc1cylQRMAZ++Y3YJUStW+2kx46zSNhKarTzRw7umtT7
ATQAVsa+ovDxV1991bMBK5svvmfExXDDQS/Cp4mLZ6PXuFefqZzQq9BqjrTx
BZGonjAc20ZcL4Zt+RmaaPpG3HfF17DzuVLhOb0x+wCVsx9pWA+MuNL6RJ2m
rE+A9nKHJJNbZqUrleNSWaNhhdq4hEYe7hZzN2XpCegYR5aeIJGWHseYeogs
HTlBxiPAY1K6dVRHflBkUSHyMMyzPEzLOMz80E1d0mwagAwgojant9vXd5Z5
kJah58VZgPphUYRemhdJ5HtJEkZl2aP+5qf2Knh2k7jMgrBEJb+bZ3VYliUa
XxJvqFrW3TIhvDQIkyLy6rhOvahKsyJJgElPRJjtUpNGUeR5XlrVaZ0VceyL
yI/cuvDKqHYTt0xRA2lvnO5Z77lhCrPAL+Qz86xPc0j/NqLQSuhn8ZmeBYNF
wN1tjFdIP7pVRUNadwdlRyY602kCmOuii/EWOSgkbDpTp34Z5CNgqHSrvDTt
CbUccTh7JUXNXdkJ2B1FagMMnZXOtWo+gzTmZRy8F5hPIIflr/OpZ1VPQaMh
o6kdjQyMOCZbLsJKpaMlkEp/9tnOkUrJelDFQF4xnHhXpt3Nq79su40MrN2Z
elfq+zjBztxk0z3RUgzx+sCwL/FIGhnCTbkUri/hiSiuB4k6RqA2AsgpdDnV
L08WY/4qXBCIRupAjEMOizvHs9lCnqGMxlferE9UhiL47MSQSszbT3nE8G08
eYnZh36HKYF8Shok176Q+kzWCqHTjJxF6pjsLcpGp2OfmlPsRRIjN2EgMRwk
DrTsO8a6DcxvoEOT3jV8Y1Uekm5bniPHlU9NbtRsp1/LuU3yBRCHt3XdfJBB
zfLNk+m1MMWsFh5xp5RoAA6GtEhTe1JsH2kSB7pluh5wEHCseQHidwdswRJZ
soDVrA6mUd92qMekv5E5NJhEUBjmzKbNywxYOauWyZ8tr6pGslyU3Qox9SK/
JFxGQoVWDS0S64wNcBrAX6HeojCCtUyixfdwPLyd6oqzFlOe6HVbwP1B9vlw
9uuK/PZorXIzmsvup14yu7XTeQ3z8OxT+Jz4gMBFOOQ70guhzMqIBJzmRmmp
WLkIEjnJpZQfgyDT0MnQHTXOmYf9A+CkJLT0SpJQWmE+yqSCNOk7x3Smm7pq
xzmFAKIbdOXDw9DZmnERFmSQKlxi/hwidVasG7FQO6JO93s5HuAMj2Bgk4Ph
QLP4t+aJEjKJmZVt41bNxc2pbeiGAFT2B4/dgdKlrFnkX7W9p3BfZolYTUFS
qzX7no867Or2FfP5DvpP6XtmmDkHn/FrlYtmR1weYrESxOhQWe9fN/TOczId
nbTG0uzxnYOFbFqp+OgrUh2dJketthA1NtVx/Zgh4z3WQpnbeiEt+9G8sDpG
aL7DmGP8VnxQ4SeWqU2e587EQ6g0fE1EaJSbpYMneqBl3JVGicvx2DlE1sKm
4kQEPD9dFEAKjenTIO2VMX+S+63Ule9rm7GzhwaHvYORZlGquFjM27U66NS7
cPvNRuicYURqpKDMs/Ss1Yh6lNqGXKNJJqyq5eyRSRgErbHmxIJsU2Jn0qsZ
p5lacKdvnd+cr+1uC5mF6s1sNvXxtzSHc4gCqUxYBU026+uZ/Qc0k3/y2o90
U6kJPHIop8Ss1+pbEl95/K75qwBhjcWOR71DgzZAS4eZLR7ZoIUm+w1NgybD
g0ETQI3Zm9lgRfeafChE9Cd/M+OEGRNDOlNDvplpeQLPVIJ6YdBSWR6fPv2R
GJrpg9W6qtFDR2wBIjLZcQCr50Rodth84OHml+tmk0/P8GBbfYju4Dh3sv6o
O9aPRGfL4vT0tBGLg7JzbDpRZsdl8fOF2Xq260sA1eGMeuz10nLuAQP7Sjqu
BYcBrvJfZGkfrH6x1kzQPrEop3W+7MQp8gSn25XU95xKVRsGiQnByYX6DNCG
qMPzqXw0GGln7wEWANvA+gySc2GKyzwrCZMKaDanRvMTny8TfclGrHGF02nW
HT0Hlk2JF6NSdzHQh+Acuy/okDjDNHfXwOR8gLdTm+ROd4wG/Cii8WDU8UgP
ksMog0EYpeWbxRn+cMtXTbUFwCIBtenn3GLFlQBKTawIZku5iZI3cvd8odjA
jneFIGKZxEHgW2O2X6szZ4XNz5zYlVgFf3Q9VAqHqLQijxJYGYnbKiksgokH
ugnWsK7T2N0/db6yc81+5ZwqSO8cguCN3R/EhztHsF+UKWurhY0a/aY8pJQX
wOBhmuYYOQdofwAroRhMA8O8U8nA5C3MjaKASAsh7tSSv3UIh4g6T9CJ2eyR
OUQkFHTEhGKjZ91Gsdkvz56ePHn97OnbZz8+++nZi9dvX5/8/sWvP8F8sTsb
g08PISGoTkSSSylbSSkBwdY3ympj7YXIUWRtbblrtHHzmsFhf7Njpd/t86N0
0H92JJM1fG3ulymv6xmcJd8js5Kt6LYdOj1zZdFiKlpzoxnbxoZC5ZsrjSSW
qXG1AVFrR1sFD7mCjo3MGKhlQHiib5lcoR1411jmhI8f8XvAEFLLa5OMqVP0
08mfZfoLZm+Ubk8Vr1m27TuOT5u+DyikU3wxZRrPiS4dzp7aQ2kpa9t1ysxA
c7HtffYA2IJaJjHpTJjWIBvyq361rAek/4J+3edh2jZKgVuyJktOq10CcAaV
s01pJlU6Q+mLVsM2LormbNuQEYrTXBzavphIAGT5KpLm7GT3XLWLNkDFwLar
kh9UmbhXaXYAuksZ22erGkhfcZFXml5QIniZBZWeSFsDAaL4H2HFKi8wdOkE
1ipVVdkQhajcVCEoiV1LHt+szsC8iLKcEWyOTDqdrFQKdL9WL3Il4I4vO1XI
zCqARIkV68GM0gBWN0vWfICMJBWXwvlRrM5USbZfpLZhNntGzHqvRBcOgqp5
lXGeXSiaVaVGWpqRGNduGmAtSNuG7I05afx2zVVNKjv9565JaCff8xeSqCOI
dMYA8hlgUY/RcSKXgHMKZ3A6d05XRX3KxOC0yTenvEysEMXjs5W9M+a3/Kpt
KlIjo3643Ra6Rpc0yO+/yF8c6MdmRW7wDYXc4h8rccZZ4ZsVzXAtdRAwQFmK
Sy6mRejWy4X4HWam7udbZ9znPIeWPzLeClRLnr7YXmBJsacAjFNEKuYqfB2u
i28fUjyHkhaRYq3Xh59qTNne+xjL8H7AlUo+fTPkGKDb//1bjpYEZhPeMJKt
eAw+nH0iLIbX8Q/DQw9XRopgF7mdA1sNmnO9QYbwHrHBrBPPHWttikoPVkNr
6aum51QeUJ+E/IwUxTU8qsQoXrYoAdI5SgZtn94aqa12JUtWqWPJeNUETQSm
GmhhDSR1o5z9FPBEWqkHTSXOSQDL1hIfWU86RM4XoiGWkKDEC8SYJFggZuPk
tPu/02n3B6UK9HC6ysBJ5zx/9uwZofdSoG9V2ZDpfAActVClZN5gtdfFvv8f
UcA1HJdop5ef46dK4bZsV/g565aoQkEuxQh5GJSYk5D5b54S0PP7n395/Pzp
02cvmAie4OOEtFcpjHTuYWQeYPslsJQqz6pCUY8R9PbHsHdJ2dtXFk/4sDEF
H4bYJzFhiKjEt6uVHe7NzGoivfC7VGQ8dl4pNVYnK9NQBtR+wYaOwo+OnT28
X2Rtes8l8P4ua/8TvbJ5D9o9HTy+CrpYxlwKurgk5n+Bw2qUKQEJuc63QtyO
GoQJJx1tT9lvZX2BL7H2KnQiRTzWrVAxGzO+J1mUJXi78bm260ecmrQKp9zx
B9bwvtQa3n2WD7xISvT07OtCL5Ne1I8wQ26DIf4NMXuNZuc7G1zSZmiUAgNv
zA1xjkTyOOPuNXMwk761h7PHSMw0D0XmiX4ZERhH9pH87E/Qht4ik9igBxBS
EykW2azbMJEWpAlj7MPXb5ItJnTjfkbZwE87dqFM+uZxZ6wolZHJUrYTAR9v
Spq3gH9quTQPcwHESut1WYKlfBQk1Z07qmgZDV8OjVtkb6Cv8rWl8eUDosY0
kUkhYZkj5sTDyws2yfRjMYWVRgukWPpeaMxg+DSrnnnM2j8LHtZBjOXdXrKi
KR0USRLcJaLSLs/V1UO3e2bRq16KZlWCVcphUgYCprZdqxpXyGfNzYZwmXQn
ZXCSIsivW+exJROhQN53pNoU6wV8Cu/zsNqDslXjnIbIPWJegMdl+Wlq0AVJ
TpMjG65PzkBKFqRM71vW9JgKJ+9l7IEFFFsxZ2q/6nQjFnbhSlmA09WqOKBn
lEGbnBq67cUFSCl/FX3tqS32tObgJO/ONv7X0ulwRL+Uq9uIFsK5L7cdJzZR
FI3quJPGcnW2VKjJ8904h5Y/9GvRJz7DyQ/t0STtgN0+mjC2dfyFFJfGXzn7
tBHtP7FjuwdT+zXIu5+z3KNV2RUw0ecHRiNoTkqrZ/EVY4CNHlf6dPQS06f2
a62Mh1KAAt7rjJ4JxSFFwEfAfjedBNdOZzkLSJOP2CSgbjqg/z+By6alk+ue
37zZL9zUo+ldPfrybcmuY8U7UkT67r2V3peEVUv27IWzyhoFKsHPiK4fk0Pd
wiLghtDG/oi+3kxd57y8/ni9ByFK7XfAGu1YOvYtJgVF8+WkwGh9/UXw5teb
9flUDXFueSaID7B88sBAGV/mk9VM5fjGGC8v2+vmAgNxTNUF1lAiu2fdJYnG
djetlpDCElFczr+0GEbmGfTv1RQyDW8kBHb3XSzyrnF3PDzsMQmUHyP/LN81
AcJjZTkTWveWHKFkXiQ+j+GondEZ248K2essPx0JRM1z5ayy5NffskHYWgod
gJnXYkFtTlnJzzXee9YVw+YuASGXakgUgmbY/y0ixLfOR+crkIULoEHffufQ
53yVP89m1l/fztBNmgzdqNE/YsU+OuT+Bv2thm/oQz0+/oEWAvoAbtR3+6bt
AQzzIJHfMRn5Dj4iQX6GBo7euptB9ZUZ/yXdTNVm6J79btKy9B+4QVwtLV2m
5bD23h+PZp0BEOTHZC2xzB477CFHk8PMJj68BaST0zJwxxsfQ3liwnuDm5EH
cwWSWASoK9PgAT4q4vxWgk+CsZ+9Q/3g0l7//Pbxs7faUKQMRNTt4NZ+T589
+fnPutMWwXZ4tnHcg1lvMQajJ5b4Xe9DjeTjD28+mHF7PpXhOsZnMup584lY
VkOpMe4ZDzftohCm4tU7WV5L2fNmkwAH6ETpjpGlHMHvJpuVdKh1X2KgAIzZ
+GTQMunPZgolLBiyW8q+d3gIT9rBTMEEGvFZAuXdn17wNGY4E5PvaLnDNnmA
AGYuVFAZ1zUaFXr+Gs6+H+Kb2m7Pzp3AO2AFxWtiZtDkDgP88v0TBxW6ykfO
Pgw24lpnC7t1XIBAgIER/uEhcBpHaNVHmMw6UXYaZoQBUTCT/8Lni8x1Ey/L
/AhzDsG/h9Bv/JnziBdJCk04NPx34PRDt3yhXvChw08tlM9Yo6U7tLT2lDmD
eldSAdoL+SQXFRl6akpJj5QBrNZQL6Oun9VLLi2dCIwWb93nObXmEOTYQVPF
mwyVEiPVrHzfrXTLaxPhjkK4Golfaz3BqEjac7ZFsHsIYriJ1TMKuWbFrtNk
eytoj9z6zLZ+W3k3bb+FfWUvOVDqJVVjTUu+yLs5F9vlpkEokYDBMR64E+Wa
xY4V6ihxLlOVzDbBKRHf9h642+Bsf3u6Zcd0o0OoxEZqpz8+qLaXC/gcE2EC
lj3HY71QPurWjsiWqCe1wE9u0kYlqFSJ5/mV9vPRX7wkkwsiwTOVVWOfw+KU
tlwalywzzSGnViHverbKoMyGU8C/78+l2tQEipM6CLi+gfqTrV+IQD27M1CL
LemX2fnR1rQop6eJRWN4OgCoq68dmX2BzLKyKsqPzTvxvunQu1TpTvpMLHob
TChJSCy/SZZmzaQ+xdN3yhz67lThrpYTphRtDGqjYTuc/aTvKWN6s57oSA5E
gJkdXpa10FEL8HE1RK1Oq8ekH143XZl3GMouC8/hKIVKWi8hQySjY/2bdojm
42xWTA0KUeYqOENBJ3LdkXdvlO7DxwfK1ZngadTOk+ncKW1fP/ybOSN7ImzH
Q0Pbp8++//0CGiZptkepbPpKQDwJS0DG3p97QWYapupa6lizpy+cZypLvjmD
fHwKskTAjwqJXgidHkp6BlvVBvu+25UQl3AdpPDZGVMUK8uXaOalWgxdu12X
KPmeA+jp7l5tl+jbTl4VGJsgmVUQxiSNmw+J3Mmf+zSuV90SbdeiUszQJZtA
vFgSPKkztdyJ1HkcObYbJIt15t7ZRcml0WJv017yqHtkG+C758k8XRhcwgNq
b1ftgSg9bInkyIuCPohz7qUkWeXfJf+Wfa2BRxUj6Tu1H/le0kwKoa3JOL3H
RrrOfNgMSMfwoinEUcTZqLHyoliLK65Hrmo8zQdt2OkB3aQYdP25tBf72E8Q
9dKfJEJ+ksU3Rj+fZp+OuZqG+nf0g+XPPG7sTGdzpQppvmzSS4TQm4gDcqHJ
0yePTxae6yVJMmwSyibbXmnBXpNINvGTwJtINfWJbjVBbUEgWsjnWl7pH/Xj
/ZQACGfNNTvkPceLPKBJk0vp/zxQLsTMNUl8nlEk+E05cDkGPHL9Y8fbN6A7
GDrgP9CvgpJOeAqfeoeYqeO+q+MchbdtbrKrSmlqIti5zIF1sDr9BJcIuNfw
JprYk/lA9Qdmxs9mgujYCfd3TiDTOIGMIAuRbawsezeB7QH8H5Ds0LOT1i58
O6/GDhykzrwX01dVHDuws3Dyft4M36MJvLWfIsw7Iy7YKrWx+VHqqBOeKci2
qsTsJY9psuxf2th6ONnLZP8yr29oo9F0twvSV0pOlTSmOIyFQmgOOe47lJsJ
Ipn9zPiawxMeyrgHiSRWC+3TqvJl8bzUR9JqeRrs4/Ire8+8MsFLrygEVXQc
WUY+YuxVqn0NNjdHr2rXuFyqlHTCfx5Nv2Tya51gSQmMN0QyDoNhT7/ur0Et
oVFy2Ha1RPcVLfMxj8fVhUpatN6W5RNAjKwxtHfiIgc5t+xYLc+uI18kVPai
w5+rCrg6NlzphwBtfwA6bBl6e5UEeyYTZoiocoKUnJEjsCNFUcJEp8+yvVTJ
VMYcsZEbzvszo7iGBRnJj57wQJuXTaVuO/0THe1lC0whSkqbDVpAuGdjclFp
t+Kptbweawps7xoZeGyr+vsmJeU9YDymuS6IjuOXs6oSGIR90p9lNMVEzhuL
gyZkvnENtv9C3sth8/GjSUqmI7PJvfr1hG1j5HxxQxpGTtl4rdgsk8xxv+9k
c6K+6DSGHqhkDRymstkZTdmRv8qqvWkdWkckAyBFnYMQzyMrL2tHJSaUgQto
6qrZ83dXeOOaTYD8UPZmmAjxJWo0hNvOwNubY2gptyNIo0O6xDFtpv67UQ1Y
5q+5KQfPq5cisXKrvzngeH772jVDpOM3X1vGN3KIIWAoV9FcuXSYvEPK0rB/
Wq7q0wOl3UrCRPqXG8Lw0C6VOpmxwE7qYaqxYeX6jrLmDUuzIbUgx3QVQYzk
kJI4AKFBjIYt2AkUcIkqmaNMeycXoJ4SmYHvmorT6NuJA/A5r1AFQy7Xm01e
vkOUvbgE4bBdcSuz8rntZkx3inQ38lvY/hNynjW6QDrskUetejS0NXxFUi37
jzVrlSlIxgaQThT98jl8yyp/q1cjqaRQz5elDMIAirUoKaGi0lHY+RuMv5AG
r3ruqYSRktHtVMa4XjiphUoGYF5G4Lcocw1FGaLTLVmOAFhyp/zo6stqvOT4
WkhPLcr/yPETmMkWxeRy3cID3vRVg4zavc3aBFWlNJN+13aWM52+j3JhbS9I
+yxDOGlezG5AgiYnSeL355E+iGmNErucVTDMdk1GYdtRCp0GtcZtLZb5B3am
HHlesYDbf4kmjrW2H3gSbZkIfVIRGoQhn5wXSKoMpQKJUcmxfal2t7CLuXxO
qTTHJ96BZKeIcsH9EgfwxZ+xfjk27rbFKZUw+aRZQEUS902QcbvW6ijs/aLl
zvm2ws4B1oZ9+fr5zy9OfrTHxigMKnky/TVGZ1BVk+mvKWIDC5dMfw1ojl8n
u75e0eCp2lfvK06oR6muJnqjGNPDSZ2N11I52cfWKZGFQc+nP4SmxdSOnjvL
I7jENB016+YwUMr8uaDgMLzzSGWQhcFscdcm13NnUVOZY0Kun3w9qkqmO5Ev
HCFuh8aMK367NCDwAuLdsJWQtsZcc+iKkFV2Jlh0eMjV1dMBx5pwXYiqyZXv
w+tWXz6YaSsTRpHhUWWFkDPmzPwgX/f6fHtRULJsZ798t1EPXhYnSK3lwrd2
nhHz6Gi9MWXaM2+hQwmkZc5L1r/mV3mz5Biz1lJBAmOOOdcLABJLY/L5+j2n
6QC60ntWVcJ2VZarRxRgjzK7BystbYfJOUc7UKwfYp1OQg/g/fjRBOV9PrSn
Y15B0V2C2dtXlA6Q32B2WAd6uUa1HWPQwhxj3l1fAF+CsTwm85bNidqKwWev
XiILCB89q/wo4rysw7Xo7CU5IE3zn9tBInOypFj1BlRFQnxgQTaSqRAIUpg8
or1kWZ7UnbsShjxXmTEaiu60hbBcfrow2S057d2+ogoH7AQnhTPFT6gj2Qwh
LbmyZpguppfq+I94rCqckqtDLa70Z0A7fr2kQgIYJScPabqUnjHWKPmE77ws
kkjrm8mvZLrAQaE9ndBLZkLcJ5LF0TWq1OI+PQoH0nKzRnbkEbplkeim03Lu
E/U/6MkLbGMxwW6P5GSSfWH0zu0IHLqe9BCQWYpeDJ3puFYj4zi5fVsxt4JK
PkTMaT/x50QaH4sGqFX9A3LmU0gwm87NMLwmBULz/gwgx9l4yPI86MqAguaW
YKzzPlGaWbklI4TAFMbPRPGt2mytTppekaumXar0QirqlDQBgDwEeMxVhP6J
DgtIBPUcT1DH2qpnBrgy5XdigQY5ZVLxlHQhlSBlCVE4zW4R7VzmZbNNBLsq
m1AuAEwgiqnQ8keznVLhvmGQD3pSumXzn4pul2Yuy4ptBno0a1gIlsi4OxUW
j9LL2KseColXJTyHLI3qyHKbZnxmdo7kQyv0XKZQx2LgQueYPFAIr7wJb8q3
JEuv9tLdgoxjBciQqvTDkOCxotKEucq7rUWt75wTtVOC9nkrs47LTTEsrbcJ
A6+JA2IKxH/WstpqL4O77ZpBxrsNKnzmKhVdszHBPpaQVrUUEUR3aTNYUz+N
lxl9wmOmQYQWF8bdSq53JCfocWApKsuJvu6kEWcJgi8oJzrB09TSH2sZDwGO
8KTBsW7kOF15DgIdG7eRM6iqpUkNjG6llp5SVJz9AQupogJf39LjXuqmaqG/
ID0/fGApaegjeeyjflJtQr0UB8GNsFrTzB5a+X7+6z5wg8eOFx+wvyemSTxy
9sbZEdmQ8q/7QJOhuWwNbCB9/Dv44l0DCwrlFzin/gZA+Jbx+5jC9/5j7D2K
5lLVnAk/ZtF1rWmUKeQRVW6lsPTzHNVgdjeBQPESX/ZjXzniaNn0Mum5i06r
fSAr4MhhS7X2RI5rJ+qaD+Z/KzhEVNj9FLywwUI3sAa4aWHqkitv3Ucm7F7G
4jNk/hWdWM3ZoB/hHBrvMiFKz19Y+LY4dvxdvQYFNXUvYECOnWBXr8l8ybov
cBoGVdCRD/t6WMqMfnQ74E2OnWjYLh61A5J17MS3twOx9dhJhihKoAMO5dhJ
9fmyNzYOM9T46cGusCS3541Go4mIywD4ZKOvH/39Pa577orcZsGXtuevKIkc
FxKyExczwSMvFO17YtjmGQe0Tju+9R4Q4/kmrlXeCRaQ5OPDPMr9lcXytdO6
vJ7blTT36ZcBU/8abggODdON7hZZlAJ7MOXIs8tewMHhKLikMDDqgUjJnOMZ
zG6nF/ZonMafuUyZjGFo6NNpzlr55tLWd/NrMjh3GB9JU9jMZI5xHotNu2hX
tq8IvYeykJqeqQCm8kJ0rHVoVlftEp2EVT15ySGPsqgyO9dLCU3D7knWam8q
9yRCoS3L7RoF1gn3SuVO81rHpEsujNAaNauUAnRf7hugoMB8IL1sZcKgnLID
bS+lsnF3mj9Kq/LByA8THKhkTEarwBmUmnKE/Rq6k3lyp8pkENfV6dQvytla
BzqN1qZF2z6jP8i/aSTinQauyd1tWKi/aK90cOyNmDkw6yBIoLe0H06iPYXj
j7Kp4n6VEkFPOex/89aNIQm47nW+Eu220yKdzLi6XZPNmykFhZdxzhBMT44T
7UvyVebsOqCvsxEpuG6aoaF2tmmSBFh6H46ktA1mHIlgK/GeKkT188IrTT6n
1SKfOkS5AUSM29qlTGUBkISbAKf7p/5FnsjjuxT12Jxn3NMoUU+7myDZs3IV
T+K1pVccBnQv36kAAzI1S4lwULXDzgZmvAdeWkZjmb1Q2cuM0oekDGXBspQ/
OoW20iXuJgI77KqwlsccobrOu82cqaI2dkvk7YZLUcjCySvylfEamK6qNU4f
2g1LXL1vSBTuF9MaOY6wQkntmm4ZpRzbqFluAcCNhldJs3aX4yJbJj5l51JX
VVjZgO9g2e3l5LU4ECSL9VJ8aEwyMeWuoSgFvOe8Qpui0mFd5O8sk5xtV+M+
KpcdKaDmUrMKwkdFB4RldOgvunSXYk0iKWrzdEL4nq2Y3uB+phU7H31fHD5X
ykhKPsUCbG4jk+T4euit003Z5YPICVzqqeRp956WQQ3JWwqgfefcWIpC+rcM
B+U7BzDQUiwf+aB6hCFsfDHQCqKjYCTNNGbpPn3XIw9rOKk4/U4d1G6gD0pq
Tji+cGG+vveO9PuVvjSsq36CrAY/8WPnmY8P3hUbSt54BjIf2X44rY0CQ9er
UWcdJ0aBdH0WUlsCZJNd9akMdzqssDsgUMbpS82BOEuBvAifTSeWSKjJTo4O
7VTwgUPBjWeCVSlq7F6NDSzPakuZbFTBKt5Xec7hpcQl9FzwlCGhX7RjovqR
Ga/HBvRjo3cUmjKlUna5JUnip1P3KTsGjU1lQqadbPgODUqBaC9HPws1EzFR
toOrKJ32xLEddTJCZ1edDDnI371OhrUm7o50iQN9SK6y1eaDrDYKmEM0po2u
iRNUzwUa2zkdIRqKdSQ7pa2lFFiVYXAnkGxQL4eZGe2l0E+HpDFg/+XtXhDs
qWfrvrWTyOGBtG2Tsb9v29br0eswN0ddG3Ml1YVQyqSek5dkWGnjZPmX4dDA
4h4o061ELTb975M35tODgTOR9ciiNrqT8V/4x3bNuSPb8p3OQGfmY2sMx22Z
tdrAZQZYSUjwkgp8QptWSpeqOA8HIBkmWr4CEsd6AADIG7+ufqE/2pCC71wh
hDYcQXNU0JyOLEaGyqojKXrZw9rLHEnvUD3f11Xfx6cFd7Tbn2WX+8qUn8oA
hyfdU6baWF4o7Oox8B6hD/elywIjj+x/MHIl6belQQZtdzmPkPrLOC0ptRee
97TDyJf7Z/BD//jv6YdxrlMzceTrpocPurxWN7zV2p6sdBi214bxHGTmx/Ic
hDflHC4OV+PsV5h81BvxYTcoZnbFQb0FZRrL0fNPyCBGDv3tTUPaGWjQH5Ne
rpUqZMBwt5c92KMFXuWnPzSCa7tyM9QaEJkY80W9bVE8TLN6JzTRJL0PcXvY
fZ8QUdcVsQr7PGINIPqA321w9iV5/hQdHgDrDywv74H7i+TRLsXaYiQYR8SV
EhO1Cya9WmV7ea2yVF7mrMTtcS+tbIjvDAYXrlklM2hnasSooOPDWa/QJi62
w+vRUGW7nkOB7fw6n3Y8HVouezjbZwW4KKtilcxoeAQjrJiYQo7pkC6RClt1
d69WiuvoVs3lJYtApEDnUFfzyuoLud5qYmHb/oggvd/cxeqHTfs2PvzkLnY/
6nmL4a83+m7LXzi0/DG/d6Pl71/3kRuGz5UpqGfwvNm2NdiiWtiN7YfGMGfa
FHU3W5RDV3zRrheA6fLtuJMRZ+cSx+PBSvdnuJ5fVNU0xW0Z4uT0EhJj8kT4
E1jr3IFxFEuCY1gB8lysgMna0ZFDTriblpkvktsQVzEJMLoqI7XshKAxTGpo
+B9p1jEnR+y5GFz2iJo8J1civCuNdCcg0i8D2nFNxIXb1LXYbqjrBABAmuDs
uMqxDAdA52GOapJP/GyXaXC2yxY4k0bPofHPAXjI70YGv9mgtIJVG3RoI6Oy
qdoyNnvAwoLJpK9fqJ6HmXwb+i5mr1t17Z38DMXRDWunryUN7wZVNaVgZhJZ
EiYqNT6JQdJHrm/2sTDI8gaRTnaMzgc98YRI49lW5l2X+isgIK0M0kJFcydd
j/or5soXILCcMXOLghkbxKCR5mop0ZrRqPUZG5AxZYbUQpUaqEi0xCTWpL3C
kIdzoWaTKjNkt1nDj9GZ9PQ0dU/T5Sie/+PxMRevVq5Db9vlW8r79+2eB1OB
SL/nHMEBeYfO98262/SP4QItiXCxbkidpl4nSjbe9EXTvtZuoD0gZQEs0T90
XogPm/nEzBO2VVIn6TzC5HKirnPCl9nKrTLMT0KCCALK1tlhsaRdngunPZXd
KBeciggRF5ebaxWkaYtcAdeh0buSZ0n8tUX8+mmUUUHL3ljE3rJ/4jffasFU
ZvyllM4HpoEj/RcnGlDHnQ0ASYCdWW++3QvhnoeDJZPVp9xMMNHIhdykLhhm
hZ5Fh86vnVFG9ocanL86esP+3OfgZ7P40Hm+w93Ruv/ke6VCT0feY0Z3cGLG
kbfVGktpQ7iOqbx7pFrvmbCklHEuVc/K88sSK62qaryAK6NPTO6FSbg1KlIC
VELqnq1kve0Z2oPteBPOvMiheSSOyoOcgplKI6nhtlIqDN2kJ4qQhls26eHH
cCwJBRzPOOLKyFTG8WH3Rxr7rX3rm2J9tutO2N3U9bi5mz2bRPDhhPLjW+ZU
nQfT7u48NfOdOw93hmu+/7TY87tvJ5dyBwh/d2c4jY70zvu87VTvt9o77NMQ
zxSIZzq4pYTXkoLKkGGdtWlkwjG09G8qTKsEyWfo8cPzVQOBvJ/OX7rNm2B2
WSIJ/lCxndLQr4pXjS0UO2s2DsISRm4NtuA98t8Zul1PzCBdE7jQ1oTWU8YF
KziMfapNMqJOM3AGEnb1AE4MjMHfN09JnDen8jp2TgbIwE8HHKeQ+evY1N83
MLIX95p0ozzYyd/ZkVyNK8Fzm6u4oxNamekGD/Y/0IHcAGHojsM5nmQNDMkT
W3dLpoii0IJ8zRmz9H3N4L5mh6MDktKFdeVlyJbWuulXyDIamFxuin5YQXVW
NiYrYcXQUqG1gli25rLh1XruofOz0rH1zLN95kKi3s+4vr630LBeINYf53UP
AzR0tv8DmXSKnHfkMUt2bMLbQZaiW4Gwzeo963NVNlynTKFzrXU8J5t/7fvy
68qc8Y4yfjDqcsnRgehQZdmsbl7lnEUsxYDKBNo6BZRJAY58vHVBiADooGXZ
XhEDxi9xMUyiQuHH7XqTqzQDMuJJRQVI+6L2P9EgsYmLXInBWc8DpPVQVpNh
i+ZKMVunJFjOPmisYLcAhjxGc3Kb45ze/SFyzY5XgxNmlx4pl0rIYiA4Cra8
b43NnFl8FH1HPO61vgFnaxnU0xc4rdh30+H6Jn28rDhISWmfygKFHx/ImB/y
KbEqI2IYtkUwVUFDCb1BmR8rGbqV8pwzNeCBsQa5//LJij0683nXtSVnLpMy
pCpaPOC3dd10G+TIYshshRSTsoWHfo92tqeX3kjf33cUHcgl/hoMgsJkGjIa
PK8oTInSJxgPWywPUpM/FmuD7QiUnp+OTAS8ow7nyK1O31+pGRm4stDTx96L
tjmmbyo0VBVdcS0qr6My7eKWigcyzSyiLBNdag6Hrq30hAYs4voAsswlDUPx
oeoNZ/PEKAHjN9/85pw/fOK5cfb4iRvFz/wgfBqH30fp45Pvv09PksdJEj9+
6Lz57rtByiosRoALtRNWYdo6donpOHOVWRMp5BCKU0yXAUaP64P7BqdPSGfV
NEbOxkQh1qbkS95N+EbeWmO1V7O072RvkdheCVJTyJTMCyOgHkHPTiw6iiM+
ctCM4Kis6VrHhPrOI671rYnGkfPNN1JJfoR7hP/Cj+c4x84iiObw57NXQRrK
NNBHzrum4iYhNnk4HTVyRIsB3jB4OJf9NteXcugY+vlZMHceOOP4Idmag3tw
I4mLK8HK60eY0QajmXEpn53vvpvr7diM/pHejZYQaBwHM9gdSdpLnLV00bTv
lkl2DVjaS3x9hBiFGzh/6Be1yIss8KLUz2rhlqmfe1Hhl1GSh0nhP5z3exJr
A1336vUeLex7MtRak73hzdw6c4mXpijh0gi4NFUc1lFa5HWd5kkBl6awZr7r
kIUbZH6S+GUu6spNvST1vbRO4zoQfhHk2a7NbNZbMfiKgH1E2VVpm6aiL2YW
RZp6/x2nWRl6pZ+4VeXGZRVEXlIFiVdmVVX7RT65Y0yD99kgh3qSepgO+Ep+
DYjEN2VPJDzaFuTf0Gs7CHhSbUGOpnQa2NZL/CgI3Nh15/CV7/rhws0WbvDa
9Y8D99h1v3bxv/9LXS2QpCnXhurrh0E26OtjXz8a90UrCbpSmL6hP9V3at5y
VVMaDuyrzGVMT2TqVc/6gmjABj/F1Ik+zuA8e4LAObJalOsr+O8CWnjU4uVC
XVzV4gNRg4V/jIccRaEo/CSqyiqui8ork7yMQy/P/TJzq2w6A70DO/MBZ6sA
dlhEee2lZVKWsZdXkZ/kfmXhxpFzzfMFOF9YwQTCL+MkEVlcuWWJ1TqTOIpK
kflVtGO+yA3qKATSVaVJCov1RJKVIkwS18vCIAweqryRdvpFIIXb1WbdCJm5
/sjJUqBEZmVW0C42vHa+/ZYphYFW7O6fP6zKqE6ioIjjvKzSrErSMPXg8mZB
mKdxWfYX7YV1lkUZQLEM3SCpRB7UaeIXWZ6GUVB7Dw/MCvihUdM/8IYzQ083
i4Pc88O4CD2/iqM4qf08KvMwjOtqMHOWu15VpWVd+plXiCrORAqkMSqjvKiL
VM78Rt2YqQi3I5mKfj/KDpwetAYCGdGafYAYkiO73gUQtsqtqzT1/KQI3MSr
4eiCQIg6yvJIBKV9yIA5QejVPiwRkM9DklNXQZi6fp4lWVI8tOaXwKLJH/i9
GYUQZZa4aZbkUZF5blr7YR2GSeQVOay6sGYsIgBnHVQ+IHkRF7FbZnXgZrXn
haKs0/ShIWS9h85k/DiCCXNA3syvg9AVQZIXURwBIiRh7cNfkSvqHXhc1F4S
10ngx3ma5ojRbhrmfhoU8JBFXrjruiWAfqkb1aKosjRLk9IDzMhDeAbjGva3
o1tVRy5cs7SKK5iwjms3EwVgiFuHeRSHu2argeBHIiny0k2DIICrnadw0/I4
TWHXdbCjW+nXSSaiMILD97I6qgo40RQ7pbCGEI7yzcGYq+ymOcodPBm7hsmY
oLU4A35xIjzGYsh1nJwMtRqqX4wXtWReWxXGgXECW6mvUSEmSjdip13brt7n
K9ZB9ULhjW1PJcXTs2KGHCtFHsiBr7HUwK8ovDxmLdEgn6YM45Mu6QPfw77w
/77VtVCselb7bGZFkfaAq8aqnIgA4ivSJPZWb+2aE2P0FKGtDL1j3/hBhnvY
iyq2zhZ3lSCfC36tby3yeJ73Qh441o/SOw1Svw9ykau6uZNZNjES6b2pErPX
X/QeS62US57PnsBDPoLLplir6gbbTYswYtUAQW696edDJ8wcjq5KSeAQB2op
po+F5fcUZwYxdDKNtNYPdyNVuQweKw6oXi1ns7tD6hAUiikeaysF7NwkVuTc
VzILO5kFWZ84OCvbVqezg8CCDwcD60TBpEzBoUzpERyEU2/ka3gze8UIyFdv
aWoWqOKtqGjE5cv0ylIRhokH13m90b71E/UdGgtbAf3xtm8bTiDaUNiJ8qFC
bZt2qHJk4XudA5VUpr2QJBwZyR22RKeWw6Ezm6KFUuSUCeJRp3AhUEnYdBd8
dXXypqkEulpdJ6UBTMXflGLVad1IadLCIN3QGUO08MAmbgTEljQuF3gRJOM9
Wd5BpjzH4g3ewUShhwdqXTevCV/d4TKOOJM6cyQww2RCdT2+myy+F8XCBwZR
d4g9/4YOoezge9TBi5PQdbEOUf+Ze+BU7erhRnXzksUf8hV2C2bMNiAI+hm/
ubBVsWzYq9a8d0oRYeXT0opnPI0BaNQ5DSEjH8VeGBO8N1Yhms/zfp0TmbrX
1PHoJwDWASrY8rYKJYe2slIZyuky2D4/SmOqLs0E/esmB7eeGNaW4oNilcfc
8arkxhrIoZGs2DbVYWwdj5WyVgeT2LqhL3hZaK170oHrfu8KPhFVNVwiPuQU
ro06UuB69PZ69LddjxtS2LOqiPNI0X8ZPM/GhTu9AK81XkgKLtNi9+uRMrj7
isih/lOv3dJE24FhaihdUFwxKxiG72CkP6kGlyY5ggSVihTtJCzZ60VbtdDm
IYNpCWNgu/L5GQBb1iBSxkVVmES9LV8RGL4iACzfo0r9dLVdLk/JFpIjbD7P
lMWIvUoHNbdVwnjLjZzntwAijSyU3XBlWaA3vXTK44JBKnW7uV+DmlDRYSy9
SnVJqH/wFX4udyTJXb3Ozy44EQC8bvJ5X+eAVBvHyOzMtxiVuMRxZllkI0aX
AU/EzXTH3wuM4r3GEuYHOjjtJfAKDZYdxKJ4l+cHvbA7ZOjtbPCEuVJIZ4zC
+2lKj7dFve1KdZuM3QGj4+HRXm2knWS47hE8yN4sq8G8b4dqaMvWD7C94fk9
2j0xludLrEd0rxJ7B3P91+W5+iv29z31TD6g/eoVGRaKCwLK5j5qF0i3AH8E
8PjjlZir3uqCqa6wA24ZjluCmNNKZ5Tr4bZveGC5/c3Pq9kEZ9N5pjwqFb3D
eyZNFyevX8EOy/MG1dsoCnLe6ywIQngnDPm/aCsgsCb9nx1+3MFt2DDn36Fb
BSIJJaltMOJDOWiSrISVSrX7HIZkYuCgc7LZIBWSHnlYFml9BvdNJrpV7YDK
LCm45CXm8zickU2eTA1tiRFG0l2lay4afBJUrC9lh6Z4Rl1tYpjShm8v55Wr
pQofeWZyPFb+cRQfwxwyfJmfUduTZ6+A80ud3z/5idbOvisnW/gHpVUy9Ejw
q6fAOTFGzqf5Jnf2T56dPFUpbCPPizHbtc7wf7hTLKaCDy0tFEfo2NuQ5hpK
sgOQKjFCrDCChnQRo9NhqVkngs/VlnqmYSviVjsA6IBCJohoib7u0Do/H6ae
NZlmlSikAigxNJ2LBMjQRpWDAziHfvbd19NuQP1I/huCn1X0E5cV6exHid+K
hQx1VqNruzOudewBNoiiaDY9v6KJ7LhkHqZFLtENFHe+s4BCTUalYbaTXpZi
S6dQcNJOye1qn82pBAh3yaJgvR1orkd04OA9G+/6d2hnhhXMijHYNJrBSW6c
dMGbWDT5rkuKUU2V3NSO5MPboAa/g7u5PVcPBDVnaxiEh9keLMulcSeyF4B5
jKXTkom8VNdPk1XLq5+9QdjDwlHnDPSdAD69SZW+m2ITqD2QvPeYq48wgeOh
m9VKrC2nA1V5Xg2NTVn5heRl+hVxftKy+scHCM/PI3IlC8DAm0QiBKbwHpVe
Jx/BgdvF6GbJunIUITFyydxXB3p6YBVXwLflS2ixMcb3qPK4dtBvVCaI4DNR
lOXNvjLnvX///rDJV/lhuz47yjvEGuLjjigXo97G6O/DD+ebi+WBczjb/70K
kIG1a3WieSeQ7g2EYxqL80l8/nx4wAoYZjt2w298IQ7sPMxz238DUwxz3IVy
JCFITOIk3B5OXGMOUbEutqoaL//Hj/S9VcDi8+fjISeoVBU32Z5zEXueGydF
kfpBmMZJllS5J4qiiPw6DXYa0nsKnV1GaDTuaiN0u34r9RhvJWs8sEXbnByd
i7XpCW4O039o0miamsJoNqGjOExkTzTcFc9FxzGNzPaV45tl2qmsCOpK7cwy
wqV/SCLHqd4CO/QW2KG3yA5xKIMZFJNb64BZpqW7Fi5FRpW8SMaOYU3Stz89
f+G0sJKNFC8sL6793L7qB6g2yp3TEwo7+atYtwv2NuR+BJmyuTzH0ugfNqqQ
Sad8VYUhFHoLmJ3F9FD8ijWrrM0Hl7Vfp3Y1hk6Pp9I9calerDbIN1Zlp5fJ
6ZXn823L2z81f8js7hPz7Z/Cf2Wi98ttT88NpP9nbU/RyCQTkdIUMgwHXl/j
5Si74sLtpsolcjXKHYNKO2oCuADILAujYlIW+YnCxsniD3bdBx0dLx8wGdQk
X1h2EdG+pZaa3a7LNc0R3D0AwKTWVqHkv2+uZOieTRtV7Bbm0jsHRJElHg+Y
zM1yN0avlDzwkyDxPeF7buUGXhoHeZV6RUyNTmQ6kp00V8o5WCaE6G3PFW1E
UNkragoA5N/kSQen3RQeSN5vytWEcPaI6d/5wyyqXDd0axFHroiKvI68MnOT
UntvWXiLhucI9plUWe3WcVSFbpFEXl2UQV2WoZuKdIfhWfhJGSRREbt5mPhJ
4dWeyKLEL90ky3xRTPeKRBlpN6QjuhRH6jtYeR1WATwage+lSeSnoReLKhEw
rnBjP6ofzt6YMphvxlSe9TsTBTA5hdVOxupG30Kd+L+9kq7v29XUiahqS2QU
XttTTmKLVTGQbrIlqfVvFEoWqN2UpcDOtlz0pJdrgXaPJackBTjt8RDtmsdo
iSOQus4pQjr7zvkTyWeqAj0uUOUPsaxEWy5guOGLfonEXObWk/dxLZbiKl9t
7GwoAAXYOifTYyUCF7Eb6jeGPLflAY0mwglYzm06NA79ofT6HHViRwC9t7JV
fln80Zj8PBXArHEuWi7VtsrPlLet4ESZVrky1V3zl0a7QnSEhFWZN+kmVo81
lhjKXkvWYAfJaLq+wykmrJhKT+58C8Tn6/43zptBU2wEl7Hg3Av2z6NpFmJX
48ELa1Gndru55LKcO/xRHjk8Jq4Ko50WnKX9ppn6zNz4FmDqgeF1wr7K20E/
sqR/W6rIGVmFAI99JiFlD/At56U/olQV5LiqXtWZ+RVaEY9Ga5X1l6i4PLTg
tr08BjkVep9OZCDTQSrEeTaFDkj1lEnhsSx9t4vbkdUOci1sSQHWOKcD19Ln
f6UGSiWsAZ4EhWqZkXjIAjNhvYArChdmrhPS5DYttEvNOTXcM87kSJkUVWm+
1xjoD8IxVutbUNS/FpF3VkolryCi96dXJcab1zoxNNGiwfBSsc9tdTVJlPBV
PZu1VnkqraghEr2whh+bdzemAJT8VpTFaG6VkdZbnbRBKjZyzbqtLYPQIaXP
pToIa5F3QKNVuaBfnj35+aefnr14+uyp8YwBOUqgbnCQ2U8ayphSmwVwaUTJ
Qupoyhx91sVKGu9e0dc/r3/95TmnxCSQS2H5X3S1x0PWXJK3vgr4YtjKXXFE
KW+1mKgoPCOlwN7uA3Oe64Pp9jQCz+yMRrQmmHShvgV4z9o1p0J/0i6hGUBj
8YtAqQXftRc5puDt70onWcET11uMKDh/BL2V4cgZfvowlT2UH1LMkOG4izjM
sqy/9xk5Z/xD9j5jTAL2CfPtUUHJJRXBnlgbMJkurC+Kgmg+61UwlmmtpIKE
k9XIaCMgAu21CY1pOhN+rwCKVwgp4IIjcK7MFq1Cp3Njf2CB6A+39ZAT7ROK
HfTzK6gDDDBLzqF36PFBLuDm/uFPrxd/fEJH+UBxlR1p637CCplYv/sSCBzi
q/x2mOJP6Rr6lbQ7VVlzUKK957OBDwlD/jJv1lbclXbBukMECYdQYO6bI3q3
j1T+uZtDR44dZ5Fw4Ihx+j5yMKEJeY0H0GB3fAo33hmjMpxsR5yKnPKLYlWk
nHGPeBXucWvMCv4od16zzanYFT3gTfErm52xK/gzVLvRkF+seqPed1C/Ubsv
UMHhTy8k5A5bSCuRxrnr+UXghgHsR4RhlBSZ8PI8L1L3pi0Yty17hXACxmHr
b1ydKGMvKgM3iKooD+var6Nc+Blc3DgNylTcCOAyvwmue0h22xXHEvHv3z7J
lw3Qv1WT37TuNwoL+yg4ESHDX949Sobb3z1Shtt/ebQM9//yiBm5vy+OmuH+
U5Ez8ptd0TP89W0RNHKQW6JouNXfIZIGf+4RTcPz/h0iavDnrlE1+PNZ//7Z
QqOLttu8RS3KavPWeCW+vcxRekeHTfd4EK5muXW+NW6dvUgT3qPl5d3zdtxN
JyhixiuSGu54WYeF52du4vkhkFffj0sXYOtOBC8UYZ578H3sAnEICoCDDyS5
DOAAgjqoq4cHQ/DvXJpxIZ1aWhzmdVlWAR5rlYduFPhZXmVApoRXF0E8XlqK
MSlhWld1lWQiyD03FXUapUDNPOGF8XBpxmd1TgtFr9SF6y285LWXHHsZXCLb
+GLTA+tYtHceHk0wukJ70hNqDynNttvrCe5Hzq+rhvK8b8h1eHhj7hVyNAFx
prmDYfHn/KFbhUUKh+YHtZ8muRdnKdD+qvCiJIbnciraJYd7UhdJ6MduLADM
rit8L3TjKC5yt6p7F2C0FPTxzpdvKWHO1HpKt0iSMKmz2K1LXwDClmEVJkAT
agGH502sp0hSOOUiiVO4uyHqtKsyzQAJ0jpKPVSpmrZvJi/k/QE8RufbuIXz
h3kdIJ0L6iL3KjcF2p3GoV+6biGSwq+TwdaKwo3KrErrIvYwNi1wK8Doughj
L87jzAKzfiVHvFo//Ao4j6pwvSAWcH/gNxEA3sexCw8+wLbYFRCFPzFiRSiS
MKjggguRR1EVgExR13B7crErKAp/qqAEuuCnoqir0ksyuJBwYEkUlsLzwsC/
oWvtizjLM18I+DcKqiCFpUZYUA+IZxS5N70OXhZ5eRqIUABPE0epnxZFksEj
IQoPEP3GrsBYpiVQwVL4AG1RwzHlGZD5KPOzTMhYtwMdQruifL9TooFhy70Y
pAjMResM2HJORjtXkXNOb8y+/CKVJ0datBmw4jKG2E4H3xd5thX/4gT47/Et
uWTV/pDp4G4xd1OcR0BS04jzCBLJeTgmYFeab4KMR4CHv3TrqI78oMiiQuRh
mGd5CIQozPzQTV3CbgOQAUTU5vR2+3he5kFahh7QsgDphyiAKAB9iHwPSEs0
jDw12ObBE1MncZkFgJvwWLh5VodlWeJjn3hTpIe6ZXB50iBMisir4xooTpVm
QMSq0E1EmO26GlEUeZ6XVnVaZ0Uc+yLyI7cuvDKq3cQtUwz8szdOYq2xB/E5
LUS1UvrRE+eC5fQ5F6K3jEPktclFENFlRYrpHx+oFE3oWqdLY5C63ng2Kucp
TNHdYJkwY4W+yM+wwoNWsKlzsb2Prcf+vOmASqKV5sxU/rDzpso5DzFRr3Zi
13R2uh4eKaZZ6MTIrHNAYvQ+vZ509O2JCPeIo79HGH1fLrDZcmAkgunweS0L
pGGvj4d9SBQYh833+f9Bn2A6XB54EjQrqqcvckMU0Sd/jnYdnHnU+vyNYVp3
DMLc7eBRpNgkI9vOuRdyqQCxhUsMWOD3GTDuBzLG3tMnj08Wngu3Otmb23K7
DgEa9gqGbBn+eAOO7GZuDH9g0cDP2T2UVNsu23VetRN9YOo9oGuuv6f6ICs0
wQdNygx/P2DrcC4NbN8jYIevfffYC3cB+9n3v/9hkaSZ6/n/fGCvriaA/UJc
5dVQfYA/BOrMi6L/j0GdeJi5NtVP2M2CBffzRuF//2y8zqfwepe2Bn8Q3Mh3
p/cAN7NQg4AETry12K5uCPpDgys/Y1YcjS6NKTXK5OzQ85hSngHKFMRD2NpI
K6pm5NyC1SnyZc+X+w/5aotxaHim/cQxWDjicPZD+x4j5Oe6Sqz8RnlVWhX/
dgZ1kkOYGVpLmKhMZX8NWwhR0cFqBaSbb+rN+a6d7BJcTKXMusWMdLOb+/eW
xpNzuA8vhiRPFd1LSGHy56slD7rLbEcdByZeNRXXzFKbPbT9Tm9fGy9B5SfL
bzjZfL1sKI5teJwGIl3z4f4ANW5T6mxmJs8BJQG0ItIpbGrKSec9ucaf469U
9VXsLjk9tyurrUfB8WhF5T/+aNe/zXcFChDA2fWuWW25iJNg54ItfLTsB9ft
SDs6UXdaM2sEIDasbXQGwGGeWNsN6WRYMlU6v8iAQUUsOFPl+K6zpd/kMLUG
I/vX2DH4bzBu3JQeq8qyIkijFESPOMrqrPJiN8jyok5BDCjyXf7EY1pvvQUj
5eFEG2IEtNZrd0ujAZnSMOmfe+s2ej+3KjpuWOD5Q4AZCPqFKFLXzauy9Ly6
9ty6jr26qILqxpmjLAxLLwiL0M39EAapvSRNKrTNRGmQ52NNFv28mf74szNg
Dawo94H3tu5zNHnVCyBZID75bpUVhefdDZlQPZpVAk4h9oogSJKoBkE2LbLM
QzikO53TR8YbbbghHf+NPMA9NhMmIN5md91M5onCd1MPcKMQflUWBYjWYZSV
pVuLyNu5mZ5MML2re3ra3217IIwleRpnd9teiIqpIii9LKxq4MaDnNLG5Vnt
w4WMky+4+Irb+ztcZnVUSVS4sV8GYZLDWoPcy5IkrtybNHZOmMSe5+deUlYJ
XGbgC+M4DjEFYFr6vlvcfJnLOsiS3E1xbj+N/bDMA8Blv8wEXO3oJjWjkyc+
TudVVZSlQR2ngASlAIJaJ25WR/49L/NO5EHd2RG8lCtOiwg0vzUMzJegjqJg
d0Od/0YxKHfbnnoa7vgk+kEeVl7mw8MRVUUFdLgQUeKGqV+JtBpZ9f65N8Mr
0iwBuS5OAFGryBOidNPCCyhfGqzyJvwUdR1VLjaEJzLBR9Lz0qgMgjgI8yif
Mv9bM4eA2n6ahjUcdZBgLrOk8gK4UFUVpnUsbprZFVEQR1Xuem5ZCTdKvCrM
E1gPjFCW/n2fuVtuxlOBCZ7+titRws2Pw7i4Y37Tqk4qv/TgqYiKOsjLOivR
joVq/wguxT+UjTLKq78DfqlXJKnqPHR933OTrHCBGMcRvHrpjcxMGXiuiIFg
AjXI8yAo3MwN0Ewax6JMvVvwS0EcwCWAdCdBGQtAmBIGBORMdqWvo5/Q94s0
ArapzqMMVptnQICDuAIWKk1dP/ob2ahJ0/U9cCmPYXWe8kN4M6VymFA4WHEV
0qRD0oRUPgxCpimXUI3+rGjauVZBC4MoXUvzYBTsVF5xbjfv6zauGl2trhdG
IBO8YWqXpfKx1cr0USzO/2i//1tqv79Mi/2lOvObtITWsm/SEv4DNaZfpvn8
Uj3r31djam30No3pbUpQU5TBIkZAPMznkoSUmvKgw+5LTOxfXjtPVJF6zpn3
8cElfzEOo7eTYcpGpsS9zrjHhXApTFzrlFCLdXEhVpVsJmOsf/n+CbxcAWpQ
fqJkUUzxNu0lZtkchJLrxkwxkbzZJddUTYW1uOSqRqhh4twBT1ArtJSa0FXl
/Nis3uUcm8U6PozpovLEuYrYWmNRa+sDroLRcaCSnWLQEHs7gQ7lquIsHBu7
LztN31DDznPZwVq6V5NuSeVo5VgRWfhYpQbR1N1a7SFV9e6FLLR2YUgZKVFK
sKiY54Zy8HMiVFlJUqUmBaCZknMte60LClKwC2Nuzu0UrpgazaRpYWzZnFPp
RcrkM6cyQrJQuB1Kd94rYcmu4ACGl0O4a2ibgtna3Gu0pePNFtesDqXoEHlo
2hvASulkYn7fvkKXcVRqUjqxuZpRJzyjzqRyVqVK1QLMAfUQ6nB2SwMdrgzr
FFe8aiu/Ug5XSGDZq+3K2hmWvtYmbhPzoLPC2Sgx5wR2VjMrMI9z3XygdbTd
RqbXwwLsF1Z6NKnK1pRFFe1Syf96uW45Mgo5EEr5Yx8R5fmRm+hfL1UpTFfX
VSFEzYWM7TFsEe+bM4Zau1yK/J0enia2ljXnQEiCJUKvYbbLDo24yK+pFuyq
22LdFC7IZNAT7jHHkiP2ySqwXIoFJwZ4PsIkSWzYIZ4e4YubpsqmnHCOgbNq
VRcuGN9xzJU2SBXXdjwsZRYe1dCYOzIHspX1GGmBrbunyeAGs8MFZWYyW8N0
MheYN0YmrQWWDutgdb20ipjLJS8RTSkX2zovdVYN2f6wb0vLgSU6I/QrKWbI
kBkqWsnZZehOslVEfQsLoBg6wHbxvncqXCDsjALbmeTINDwdAX9OpoMRBbSx
XebWI0zG/1D1TN6kjkJWVeiHdXpopzKrr7WoiSHn0pKDhhgFS36Unuocihez
2aDOtIqUM1lmOZTTLk7Uv1xs1qCbQslWEG+hfbVd65MRWOCn+Sv36DYyexgg
VLUtpRVEvacjvKuwMpQaSVcxplycKv0gNYTJOZrZEHYVQ0c7gK/47ErGP06Q
YXImc1B2gzTtsl1z4m84epxuLasXcWa8/RGeY9ggVkejJaoyQRwbjZCzwWUX
fv748eTyEk1TH5zHuKffPV88PWzEpl6QKNSDGrAekrxbtaJpNxSiBHSI4Ghc
9UxQM6dAkNW6dMVVhqCCzKHMq6LGYqQlWqLHwaLmOT1XFLa5olybVFp61Xto
kU4AiCU96yG+TPmEOZVkKTsdcT6sbder+0rlLq2YTWXgVPVbry0WjAq8q9uj
3mlFNmVa+f5k/bKPdymL1+nkp1yrj4zj4/riwI5SDCrV87LLAZqgTERCySkO
gmaZPVRARfotT7bjETDSmUYwI1+hjd86ICRf5bql4o7qTgxOA7N5KnG9wdD6
c9nsPMeKoYCCHaWdZ+u+hINODnioUrQsjOMbOgDK0GxM2qjLy/Wum8y0Io+T
3iNklOAU0RvwmjOrDYp9WVH5DBNY27tuRCA5k+cI5waPAop1WBzPbqk9AfHF
wNdInxLgczeifMx4Ikc8OF181ApJoymlHyMZUgSyFdtXaOp8qRTyL8Tf4KUu
YQ1/haWcN5dIOzdbZgzEB5no1vI7kGnMgbtXeSJgpKf4UsJSigZIALJXBT0v
uuobJ23MNxuQCbYbmRYRjeBnQkZuMgmAtcBoj5tWZi3EA53z/hsLIZfXtsuI
vMRw4Gvk2Nb8yPROEAZ9TbHma6pp2KFlXD2a+phIalOU20ogK6s46JOyDohS
MOKZrvNug2e+FGcAIpVWE0lUzWlskbLVW5AQObKWdqDuy7SwSUf0WjrYbK4f
dnLwFdUyW1UqspcxRXnIEHpsMPvFtoDT7i0WIItMFVZihZd2jbkx+NYRVgJR
qWQqCzz7fAmyTCWZQzWanBLAAoNh3rd2DXhTSQGjxS8e0gI7U2FRk0t8SngL
qna43KDKCF+iU/Qa2Se5h0Itl7KgyDuEkIVNc01SOBt9cSQYiah1QsOXuAWR
M49OQH05vpidyuxNLsMYQN+jOFZhxov8Azc4N7X61q3MFKMTRigiBLP9uAMl
FIg4Uh/uw7UC1eCuE2NA6cA4AamK4zbgAagCal7g5hmiZ+t8hVm7ZXqWSUqu
Nqz50gFBe9hpxFS4z0f2VNQ51gKzxxKbborE5pSdfMNv5YBqwvh4N9XjP5u9
wsvL7xhwGuXEO9Kv2lmqrDGKU1ZvxpynIuqjUmMrCX0NfOOirWuUvYj9lO+s
LO5JTjYXQFHOcctXpqO8Jj0szImQkESpZdDBmplz4FeNEsvjnHN901kzzWdm
AZneIeCSLjj9Mz0ZxHlL+kloBQzh8rp3CCWQ1XXTdop3adY27QdMxn62tohf
N3LIM2PLVP1MwnGidnW2IBXSLkbBqOn71OYJYAnqDWg9fwFevauaUl4QNRY8
MbBVHgvVdq8wSyyCYKS36+Q3nxFTZKOBeo4oOKVQkVk03MhHhdqKC7ryh6ga
tbVs45z8zCxJ6QTdw54gSrQXwH4rR7VyQu8kb6+lQNC6D/bfKqkINleatUeh
NGWSwsLvB5MCGS/ncGbWolQh/A1cJ3r04TXH8d7bugg7JwtnKj0TY3kT3mkp
w2Epkg1/h4I4MGQkyv2/7X1pd9tGluh3/go85ZyxlJAUFoKL3OkZipJsOZa8
SLaT9MnYBaAoIaIIhSC1JO1z3o94v/D9kneXqkIBBCnJSff0vInOiSORQC23
bt19UQqSCvgE/MyVravGKMMViduNXXmHYi5XqtMrL1eJ4VsNGs8FwYY+VtI+
tw0HnYlj4YRVvTVSCj4+Z0BH6KjuNTWUMJPcnGfEyS/FNL2i/qAPnsIWyLiL
kUINe162/aBQBnR+waPD/cPmK6w+mkrQZcvVGTaN4lrR3OBbtZqnKiQEYkAC
ffakWBcXfpTJWaytvq8ApVq6HI1CrN++srpFxeppVeBy1UVTtmvLYuuXLLZ8
cXTR8UJhB0jj3Nz3qdSMVi2SiA3GAU8Sy3CJwhs+l1ivSWZ5heI0VU3a8ahQ
ULDNI1TxXzfZJjsecRX4PxwAIJYkQZSbM5ijNZZNbc8ErvDLguqwoQqhlCxW
cXHsmMqsnxdieIkaO0jJr1XYqBLs9dEJFpJIVS0bvM5QYqAatboRgnUjt1SD
JVWiqVzdTIJgo+XgksxLSWW0AxQ3qVt0DkoW2ZeP2Hqn3BhcO9tYpa0LUNgt
7dokcpKe6XpvVhu0QijWFkw+3hZFMkuMKzCE0rKwI/8g6wKGQJPPF7mrEY1S
KlyEn6lCaExqJlQ9NF7MtJlbw5i6lLAHQl2Au6JGnW2KbesWEgJ0J2WBIwNE
LsbybCFmCRZMMvXHi8LNxfx6h7nqCaV0JELfrOYK4i4mhoMC8VNbquWZWDTI
NqJyzRzqpmKcMEs01oiumI8mb+DufghGp8NnrULbbw1BVJRY34jPWLue4Nhn
GaVQsiRQMvgBkKjmnwEHoN+1TCcTPDmgZ7fwec6WdtTHYe/w+BKNgiH32KZV
IkZF67qGkcO0JF0YxOVcidx3BmXLzSyoa0Ye6wZ7Vs8MHVJfMg61G++mE1J/
JhMzklXTeybZrliq967Ou2k5jJjYc+00bEJh10k8T4uIfiIIGl90fTNmDBfT
7GYikzOK3Vb2PL5V7P+wzkHJsQXGKCOh8pjZPcUiOb+R3IeGO9Doim0xxeRj
KTc0QpD5i05NZyvCLs7kdAEiH9mjaQZFTrnDD9nlkNKUNeudJajIS/T6ARQS
rF7PcPi///v/8D0jqgTCUJqhWDieiDOAK9HrPAaSzybSgqhYJBaHoJWWXV/I
yKlkFzODQtExwlbTBryCNMhK4gZOm5QnZeAkxwci71uuiHxMuAQyadEWXXsH
tA2uOBG1T22xA1BKplIYRYP2V/I9APlJuPDghAekuCveNP/qmBLxJZ9eU8lI
AqNZbD7GpJhUT6Or2iNRvUuFJLxUlfaB09etl50u7DDi0tAaRoTLgAPZYhYr
pEEmw+UaDTIyR0cxn0k0+Sm0LGl1A3mdIdjJlk9EmJZDB0oFDkH+maEQBZQx
lkqIs4DDjrlKJ1nleNhNOTtC2W6NHRfIJ299A7jthjYB202jqOqrnIxbqNfN
NI+xRO+Grpio2nYoczvaS9D1n81U50IlRas5bB1BCRGmSmvR+Un7OJMUS0pq
zaQyVWyST2ayUIYvLcm9bKmY3pXfJ0mV77vmk8bLrAwUOjFH9WtDgjwpIGE9
aTdKLKog8sw0j2BDBqvyjJTtxlu50DkpVulEmBQVBG0VjAsVlYMfTPvVyAgV
qhQgMNUi69lSzznByrKrkUNivmzKrTF8oI4FBPNqvuDeX5bHBYupZiWFjCbS
wLebnpgEqfJ3umwsu/tjXaaYkRLgsAHPV7ATsfhGZ3/nC7RUTBbZAr2hGdsX
TLOtyDiY20WDW0IPhdeqMHhxXk2LoCKYCe+wBm1MSTyZLsNrdFpcDa8Wd2gt
N7dMSXrTxQ6U/xJlPVVUu1J1UsFHAZrNLVUviaHeVaxuN/Zv4YR50UocQtcM
bIT8YWgVsm96+YZSmzadSmc8bYWkZ8eHFFCqAsamK+Xyn8VGTHMUC3nwT669
bIXMKN20tqeORqHDEsSMSmPWtYbUsQIeayarqrVqsIHSq+ifEidqVqx7EFWL
OT9yGXPd+AkbGaAiyG7zSu/e1OoBgH4W7gzTLM9siET1YNj3bQTCOkcfMQqy
Y8I1UY0KqIIz7dbCfFXmkjFYW02wYGbGpSJwKpPgakX5ZBhVoZ1Lc5JdyQtu
LY3opY0DsISr3AloEV0uSxkxc9MxceS0VVKLvM4sleOEnTgvUWVpNEaL2Ywk
kKZDDkrlhtTtvObIvmYJfqZu4qwYrRL3xeDgFmah33c/fyYxYGS5Oqyl0Pzc
UFOH6znft0N3UDKEA8HFVeG6X6jlqaUVK1JeKdYBYXrjx84QM1r8dQu/Vo03
SlFWzHTueU0xb54oPpfxhUVKFMVBjZ7Cmi2EULViyv5Z/N50+mLZKdYJmVO4
VtnsAnVUkqasrh0IbrIKIYkB4oUqq9V5kqqD5xT3iaYyMmGWIAOfwqpyHRhI
jaVHoJyAXJ9zrIztIzWyP3AVDOKrSDzNAv/ZNpXrdiHlNlhGErEE5GQRc8Yq
LSHmJawjKIVseKqDMFRrCm1aYJauY2zUbYPdX16x6EgJ0g9YhdJrUG7LtDdV
u57wUup4O7Q7gTxA4joiaNOYY8qkaZEvdCNv3d5WGfBuxKxipS2MWiqgQAnm
yuon7IZ5cILv2FhQarti1+oec4395TrfleBWE9dBgS62+bqIqTGFwzdhUNYI
qC1JueWL1Q5p5eRUV5eBiKapBXZxW7UF2KfXrlYRdzYl3QhaAPZ0eTY64g4q
4jJTsj3WDAT5JiGF1ejrNGx2NhNX56XeTe3CsFKKsMylPS3OUOz8Rk4mRKtV
yEGSxQuyzCQ65EHQAlRRZOw6Nr1OZ9lU9Q8ldMW1XF5ys7TiS2UzYScnTDhO
lfv5HOgwYQ1SC5C8Z8ou9K4CwMqiyaixBAwtcfE8HGpmvoQzQuFtPpEbFahR
O8exiJEwawR0qP/5fCbFZbXlUZrz9BN2SCFpmKVn2J52DDcS4StmzHm1B4di
Y+bKsrsaNcotGv22c5KicKCjbJBmoRN3OZ29aavIaDzSIpvdXkJb/m28ZTo9
dc4zHNTIoladJdDm5+dEZsepIlz1JQJojroknKoCIoqgk/LjCHylKq04e7YH
5GUxiLapAvyc9BI4loqnTMf2XFaN/XwBuEYFqVHNB/xAMfhQtZFV8diVSQhQ
F1JecZ0qMZdrqEHZEqGaJqDrUjfvaDe+m5qC2fQVm9qLJY5VWMIFDjfLFqgm
nmfZnOtD5KnmVXI2y9DbNk3I1UL0nVQ/YFCmP19WRKoCXgVt8r4CYVmoqGjg
KvSxshWbvp7W3d6UtzvU2VU1i1LeY7Zpgxo7Yb+70nVX4TdyoHSasUVcEN9A
1sdBdKUraQqp5yYuI2V/N4ln6DKx18d6tmR7bj1B5DnnZB/nmCbdedUE45EO
Ro05AEVSNMJhgzGLyxF4sRn2jOrjM8OsQAPD1ApQrOUDHQD5mCKOZ4UkgokV
iynZG9JyFCmyyyRx1pMQdE86m3zRrG47OrwRXa0YfrsgL4S8naPpUTuAR2W2
aMGOGzHqxn+Not1Z/QUo7MM17QNBgGaT1pgvLyoUar7sjAnsP7sRIvcyN8Gu
S13uVKttceZwvzdWoFX3Hyug8UzHn9wnJahyRXzedomTokOfsolitRfFjrnm
S8JiU5V0DnWgdFph+8ZUslAd3CvcTNFka3PE3Ai3i75xIEoXR8CojX2KR9ij
GDaC41sdN9gWQwIHQOoGvYHUQ2Pt0orxA0cHQHudpuP14b9B0/E9+M+H/+Az
P4T/emRH9vvLok7RNGq4/+zwpEwFinaqU+d7XgNJClrO9cNuK8JesgCRawHX
h+3k3IWi7DvmW1PbfrTBHTsIUSjLQx1cousqmZYJKupOoREj/Ub9oBuPwX6s
503/MJ5/xTYVC/+xM9xXsAFT16bazUF3SK5E3s0lfEypHbA4jC/xQp9ji7mz
Mgz7NfUO2bGG/tp5KSI5wVw9+J0zFzAkd8f59DfnG+oI9NMn881btc0dYDzY
DHQLvtkjUwFRuR1naNqD1sZIGhWK3X/Ei7mle6mOlEoXYZ+K7eimo6CgT2nr
DTk6NkBT+RoWqELtdoCqcV+FFkgO1KmcI8s19pcCbQzAASP/IdDGcS1Qu1VY
A3GpgzLjNuJccc2rIMfVUu2pgnaQ4olykKq7VqrRlK+Ck04HuR9IdZ0D/zFg
q53JAqRXg7R/o/Zb5p+fvhCBK3z0XwCfFZe+/3D+YWdhg96vgp6ajLWp6ZO/
EpnLYoNylNehdIUdGpTWMtU9OH0frDgl5IRYH6+UQvvo73Dw+VFs4q7KJJaG
fhyDoIQYep077+RqXVt0IDTijhMO4PcTCcIt5iwgzFLd4olESZUvRAHzHOVr
7Md2lhq3g+KGPmRvrZakyzWakuGVq8QJ1sLUFAj7Exu+zp4yUGwCL0NjMddw
4A6Z+f2ncirOfjef1uM8HvIgX1i/KSaNv2q+fJo5u1a3TpiF7xsDkb0Lyq5J
kpA+CeolqXpYmQKLG6eZXUt5Q7cGNvkn89L3SoSqi6NuI3LAYgA1+nih0Lx6
CFccSB2Il1tlbBlO65a7albVqVdvhOsdlrckZnLV2/fixzwiWK8nbRUTxr5a
sYG+3UbYgq8Cp6gPPS877g0Y2BWqWyMrqHbdMlStCSuwvWeuTRp4qzznH3iJ
NIZSuFMBINBXddoI9X6rhZKKUlfxS/PMkI+KySZDwoL+mlibQjGSifUt/jjX
6qK2VlqQ9J1Nc6u3ylBVXORs7rifqmC9FLML1dy2KGJEkVWImdw2jrGa05WE
XunSddKOxQegJoeHrcdPQ7k+yAiAj77eTVAnt1S1mN/HTEzbxseRsps5/qfI
FyONabKnKdl1PP9SUSEYLIsKfDNZYMCh9Scl3m61C6yEO8DzL/Rma0YBXgRi
h2f+LmQPOisU9fC7c7KBj3TEyAzkjv3Tg/vO2WrZuY49HaERU6csfhmD4lO1
BiqO1bn/WMmKygu1f1fHbKXE6iOu6TP3yBOvnjJ1dpzS8ViDI4AX0bz4Tk2G
YplKuyo03B1nui3gK910vuarfZWsW81FcyKQrWd3RBpqcy9IodEZGivOkviW
nYQBwx2is4HMm7owRGVYXtfrhW5dWRrRUqOoh2S6Vtv82hleWZkrJJhZQZyI
GnOSqU939+Dhg5k4Y/ZcRCrVr25Ym7e+Q+VsWs6ROAPqzbSd8B5f4q8OMILK
mB0rXx5h/eN5BiomtdOmQ8Zkb/MYgIVy35x/czAWeaKz+rjiBKf0oeyuE7OX
1nby+nC073x4ht4dMpiTEraZX6Wx/A90k+NF2AIST0/jhS6OfziTAh4V4qx4
Up2nSuAVZwBKNIK9OiZ8RKYdK+fbVH8/zaZIgTiXcAeGl+r3JzmCVSUpKj9m
QWjiZULzGm9LzqdgX6l/d5zjbPlWcpuZf9KtVJP9D7qVF9H8X+serruI62/i
n1fxD7+KDnaK5sI2iXPCfctPsErL7e8S2lYN+igRruDvLVN9J2lRDZnbtV8q
acD+nBahvt6y7Drs94A/v+HvduCXgnHrtOXHcrf7ycQD7/XDb9zvoDuIQXwz
HoBr/OX2KpTjaCfE93nrgC7WKkFRt9NeIS2WfG0bo2z4ujruI50OM2m73Cp/
azVBzcAkgQwefzfTEocxf8L/6YT/7hzuwT8GV5y/wyvLQic80oL//EEA/z4C
mZaGYwZmhuvQcGtoPAzwG7DECUDi242JHM83dPW+Y3nj2HB1NFw/s0L3sL7m
zm9fldqX63in0hqKjud2+MK9Q+tBm5z5umTfqtc2N5yzWba4KrQKdDDBUT1W
adyi2AuNpnkptl4XTiL+U44xLgqktqneko6lz88xRkbZHgx+mxbz2MLdbtou
coe6pNvKXtFxncN7zrPyCeqb4WxaaaN+O6B6QyBVYGHSz5+3dDJyZUWVyWFr
n3S8s7koOp07HHQB4XQuAYluJTGNYnoSDuUBUDGn59AjbUShnXPQVKlMIXW7
oYv3lmDDP3/XdnQe/7UenwNgyHbvYw9AuC47Leun/NfqH7xmbmsAP3q+srps
xMXKD77nufDT6nbw5b+D/IItekbZpVS/nsjZ9dKL+F43pPfo5P/u7N9i9DIX
JaFww81pVoSbwGdwMlvwXkMZ63X8dv0yqYwlwgSOiXFMzKRBZpk0OHgW5Lub
rHWDGd8qaVGHUOsyPCD1tEAaa/HXRqxp2NJRUz8ukutUl1OTppTWnuSqJDLh
TaLb/jRTOVT6JuFfRTCkSp26grWQFY4TvJlbqes2Rh8ThTWmuoBMieg0G/jU
8txcUwVDUK4rSJtxxLuKB83hwxwjgRvGb1AmajfY5iiSlqZC0WxaErcaLaXj
mtdVAPuKtxtk1sMIqAlWkZxOKbAqt0vGqbic5R2u3bniwSzrEy3FQItkJm6Y
HlkAgYtdunTqVZQGivCSkpTMLlfCIxWwDUjbQKukFfKjUj4am7J91m46G2/1
iiyZ4P3olHFgAysLfoAVanppY2lzBQD4aGRKAr4+algaEPC7RnWXeltNHeEU
C1WBjqouqiBntVs1PW0WzwsB2G7syalduUZnyFK7H9BWp0a7I1QoSqY0G/ni
DLNDOZ4s1zQdSzyKC90zi6FDsYF5Pl5MOC6bjg6IpphYFDc32fwkVpj0bLR+
i9m8VNnThkHDZErUALOotsaJ3NccpwYH4nWcRNwhAxiBfIkV7BitimB9UY5m
rxldAStvaMzGtcFy5ueK4SPikLe4dGjJgkUimRfxcuPFVBU1wSi12gE5cq0I
kI2IWKlIY3MyXLGXGj/ZrwEuA/g5KIcLH6AvaiJt+azZQLSw119aNgdOUt5A
W8nFVKyHQ4JjzHUr5JbFFTVULxqd1h0OJr0xuDlhsSGo+Zq6qXwhrQWs5xrE
KRplXLcveFtXkFR4K1VSgonKrVkhY0GWUrg2Fv8gjq/iBk3qmQ5X5FLc11KV
s9GFuYRtptBRVFUxEysGqKKRVMmSJqG8+sldi/V8aZLzyddrI5S66flStWFR
/2CRpQXLpiIMJDdRkrbKHM+mY1g1l4ZDfU8qEim4UEKMhaEUnJoMSP7DnKgO
RUTg/LxIzrRzrohONQxV+QithZ4qU5mulHOPuI2GAKqCtKN+s3VOXDUFw6GP
DJ0ULJtitzbzhyWoth2H8USosV7N3r09ZIrefuh6OO8b13NoHHZlmZkkrtLS
Vq1m87BW7rYlME3mtO9WS0rtrUbDduDAenZBQx0rkfXKjlu5Xu3baSw7ZmAk
LFRIJiQV0Q9CGwj5uJ0N/HiD69vSUcPnmFpP81DlOTWnXV+DiHy78YpQQ9eQ
U3yW29trc1jTkS3bPNYExnOJA8AS4ai2VOW5XHkLiUZjTuZqJxLsplCCFc5q
1ycxX/W7MjPyzWW2oBPlK5CngoJjNJFMdNkJRMt3b1+W0/N1mtEMSxVKBSIz
HVUfUl5c66hMmKwybeS1O+asZyWq6fp56rIdEoudmAAfrYXljcZxphjwRO9N
ULkGtlcbmVdTehgQVBAnEvEFBnSOlEjojPb2Xjon8bm8FKBmx0ky+UzdM9SP
g580lCmB67J961ixbBKbrF9Ec7I/bDtFNCB/2WiUn/3W+arb9vqb1AbGpLyy
Y9FpY0AIDmG+oCYLOfZELX+kWm0vvccf81u6CrryWv60RWsp0my/5Q4I/7YJ
u8J+gFvOfzrf/pWsJ9vOxrJ1hdt9/NummJzB4+ppILn08b/DFxcpLKijvqDI
OP0NUIyPrLJj6wr9KkHkI0aJ3sw/Xoor8ziHMlIIozWN1uqeOi2vS8ebn4uW
H3bt1yQCxev56j07WoyG/9qZYGgZfodVcD4S5jQ+E2gsIGvgqGFjvfaeGjen
LJgWxQE0K/MvhRJSCKF6kaLQzQPWAOsWphurq0UBBEwSqwpWZMj82ybAtDib
OR4BPLyq0wu9RQtfRDuOv+qtStMX85ZYAKiDVW/pbFD93jYgVPEuiOwFqgBx
yPFdr98PXPoxz02j8Y4TVp/rLj0HUviO073/OaBCO06viqIEungKU/XN+cIR
IErCMFzMrcjAN4Ndoy3X85ZGo4mmGcUIBoOlr5+qh3SoDmPJR6oiQY/+DZCB
Y6L5BQs1ynfG4IimPw+gLvhomZbgJw+hL/TmPQSmNPpqCtOpUhg2uK6lMEBf
4BH4XKNcibCuv0OVLeqFrX2+eumcepR/GM47ZGVoZbMWYKCKrnoQsqxc4vJ4
sNLNBq7nra7MqJRzO+2eU6AL3RlbKr16i3L0PNUFV3CM42yuayVNiUWyGWB7
W1nLKO+MksGxM9INZSqjLAZiCVZzpzG0ddRv+1xVDwQvp9/13K0G34KnzuFS
khOlwlPRAl4TJUwXGyBZgV6tAUA6VZWt5lhYB/QAHABWmnLat9KCGqtIUGMV
zWko4lolMg7AQ323RFgaW42qLPCPZP5qEoyJM6y07oI+JemdgwJNdWKUnVA5
bmiyh0hfj3oOcqTir29hHmSx23Qb4H+0JAQKEjHrwZ/oQzM+/gGw+At9MBdn
f90snt2CYb7qqe84Jvmv8NEY9jxv4A5K606nulOD8jIuiRXmBv+hJFd9TAz8
ow7p/LY6g/5iu3aYRs2H94C0dloG7vLGl6FcM+Gjwc3Ig9XqtImSk/0bNg4q
8CkwLjfOwh9c2umrj7v7H9/u7w1Hp/t7H0+Hz47fHf11k17buve9vf3Rqx/M
S0VQJyB65UIojK5Z4l9LHxokX/5w/cEsP8+nUl3H8pksvbn+RJ5yECgG01rt
5W9mwGu4rEIrkkUpb64SOysqdNcCHKAT9leMrLU6srZwqOu1Duovx7lSk67G
8snA6F2/0dAoYcGQJfNNr932w3CroWECD/FZTuHL+gXXY4ZTM/mKJ82A+y/3
j/aPT9XjRCKp2GNCWj+7lfgQ9B3Y9DsmRzEAMYVMh6dkkOgAm4MBiNENOoOm
qlxvHwZd3YZ1trBbxwUIoNoV+O122Mcmhy7BpEFsRsOMMCAMGur/8Hlr4Lo9
bzDwQ+zkDv9vw3vLnwG7pEX6/wlvwaHh/5GOF0oMjKUy8VrcYyVp8dfOT41G
3cfflrgWj0RBKg37D9SV+U+mGtvmUUMYCaUapae+pS6pUYEhXpe1P5Dp/T7l
Z+Lz8IyY3jUrB/vUtkrBI5sK3+TtfKvyyHfyrvFTo7KiR01exary5D81+L7U
DOnUDQmgrtMP+WzK38CxVD4oJmlW10TiJQpgxx+PDo9VVu+qh1HMs1LKOSWe
kpK5+CF5Aevv1FOHx6zgyrqZygnQVmI7+YPEGcpktFG4Oy2KHIGFwLum9YD+
DLCaEyKKYeH3CzrhpQEUfTGUfH4O9O5qBp81il81itNaBSdIoi6IT/CzT2sF
CnZiJKUEKa66UN6spqIwjJ0cVVNFg6zkWV4dYDE1lAWmaTxV9GWa2PYwu6AV
PNVu1C35W+Q34YDwF1mATe8wB8xmDSVuIwriVmT3mO00VhBZZAhuYxl8ZggF
QaV6aIFXGyQ5iRvBRjAzHXBMJUfsf1HYmHV+0IrJSCj/y4qV/nWTcWDLsghS
q060CrZythqqUJ+hcTPzqiumaxZPMe6HjY9ilubs8+Ra4w2rDx2VmTfFt/h7
U4McixqpDWccc8TfAFyuuSY5iWl4YE3C2qZuCdBeTi9AtCTMRp0Rzlv5Pj5V
zH8/38w/4cKqn4MU+an9sFFAxa8dhVX/NaMg+n76Ri+iiDfkRne3NOA3xVpM
FhfCXafGrFogSMKf2IWylE5pZQ85RfgS3IYtvsxFNJ0Rh+xrzKbnpTzHNcBq
t9v2WvCu1S+h627pGbjuMcKCubLS4NG7ZtUcLJq8cUwH9VZJuW6yXWkdB2ny
dpqcc8njvKD6YNYw9w0B7za1I4qrKnNxETm1auRwDnKMBS8t2kGpo7h/hmRR
Mtb4MHQeNLt54R5xEV9BMQ1UKgPjYaRugsi1BWfZ9GxyRwb8cp2qiZieLcQZ
RVhZULNLZnPxbat8mXxYrcipubnTrAomOdVeSnuWohWHoE5uiCqmf6IOPrCK
tuFIHKtW0JFmUekV5FjJ9IdJY015XRzi7f6bd4dvqXDHV9hJuChTqjumWYVL
H7wKnlzPjH1FdK1ijiYsTYzTYH1BymDX0Qqc6Wcr93a5+gLULWb85XorbVO+
mAUaauJRLFj7nphLVwvQlvqxm2LpVFeviLMw5VmLfrP2CFTJF2tE2zUG657W
BU4pHNRUumTQF5UvHw5406H0xcmrY+eVavnJkWlXExHrUlx0y47ElSksgJ6+
otsre4ONSGFynakcCqVsv1M8GjexzxZPLopyourNbisYNVQbjEKGuhLUGs/B
5tYcB1zbsn77Yn637Ties+P4TWd7f4TK3LaYnMGHAXzY6uGnJ37YpS/i2fW2
08KnPfj8dUt/fguPOy0fPj9/0g/Djoz8XpjESXccJV7cE3G34wnhxwM3GVQl
W9/1/XHiJoHrd6JQjL1+3IvjrieS0O8JP3mCBqPtO5ohoBk6CQwp/bjb68lB
N3HjuO+Hg143DGM58JOwOkPoBuOw4w+CpN/rw7o82RvEstPrud6gE3QCniGh
GTo0Q9gLB6LfleEgioLIdf0kkZ1uLxGwQn8cJNUZ3K7sxn6cdIJBJ+zGY7fT
D6NB1O/CrJ1Yhk9UD3LODmLaXm4/Mtc8C+/xaSEiq0jVbm/w+XPjS8/z/9Nj
s4GqxW8tmCFNnc+xsydAkdtiGWjxV41hp1bHWvr5Csfd7KBN3XG9B72wmHJl
7E2P3/If95ZPb/nug96aSmzDci033d+xQv9hb5m5+K2w/4BFfkUp9vlmwLuC
H0S1/V1Atb3RXvdgd88b9YYjQLXh0B8N3L0BotbBnruHqLUbDg+8/qg3GnW9
4R6g1tDfowU/DKRmwf7vWXBnD1a4748Ac/cH3T13NNKYO9of+HshYOoBYeoe
Yeqet98bjPYLTC3QtO6KbwLKnstbgSFZl2Ky1WqdPB/CFeVyQEqmtLRmph+M
0I0+DJ/0gjgZx1HfG/twCRPPE+E48HqR7Mso6MhO3+3JuB/D7Yn8vt8ZhPF4
nIzdoCfd9Ut79/ZQzbOYTXcwanqHgujzHap3vBNfzHfO3Nffvz7++PJs/PL5
r2+fTfq3svXz7PjVyXCc//zi19l3o5P3v34Mbo5bQ55MsSqbS7348F2JqhEt
2wBatrHjbOyPyG25AVyJ/kRuxJ9cpAl+8uHtG/9t9EP49ocXo8Pb8d6blwNx
NhmMD05GP7xfdL7P4l+i7q9yFntH/B7QQ3yPCCF/cot/n78/nb3wguOo5wJp
/nH3l/TujX8yTD++cW9evPxw/exofPSD8E5k6vJbtLzTWC5ePktak/ne0dlk
4r+Puyfe++HH96OLwXknSZ5Pp6/eBsMf37hqdlrze+8yiyaXvVc3w3lw8ePg
6uW769dvosub3NubHESvdw8/hItnb65OX73b0HTucIrWIdNCRvcLQ+DNbXQ6
m6J8PsGCndFMigvKACKo8s71xhnABF8EwIP33yAA4O4ftXm1C0BunL5SoN/a
S0rbVDVA1OXQOwgHXifodsKoi5wWcNn3AdHjoONG41DArRyHYy/03UE/7Erp
9YQXi0EEt6Anol4QBiUMrIWfmugROFU3JpfscV7vH5XxmrI0dvefHR47r9/t
vjwcOd/t/0AfNo4OLm72b354/l324+GvP7uj4ZsfDtXve8M38d6bs+H+qhPa
hhNqlFHUO77tdvIfg+4H9+hu9OH7H9//evXy/bu9wbvvTv3n554rZRw+j3cn
e29uvv2WF7Z/vLe0rNLmsAHGXD5od28P3w9P963tHT57PjzbHx7tHj3bvfvl
2clRZwB/PxuN1O83+893n7k34uZwd/jmzVn1gjRW35AP52+Hx6Ph8OTg/at8
+n3sXV+/ve3eXjz75eWLvR8PRy8He6fDi8Zc9H+47d+ez96/6L58FzyfpbfT
8VX05tfDFz8mk+9fXczfv3ntvbl6/YN8/v3bMPz1Irl59u54z4JNdVMEHNPb
UbeeqpHCb1Xq7B4IatMM+1NjAADrHZsg0209QpoDqgcfotS2Iu5oO765CMhv
QATHFudDj+T510G/U5EMfZIM9ee2ZBjDDRv0Izfu9fvhWASh3x9H4z5IcWHU
iQPRTUCkE6EAybEbBW6vKsdFPb8fBz3gmH537ItIhuOoM+h24mTgSbjGfRF2
BsG4K6OoG0fReFly7I+7MXCwXtfrDuBCJ0GvE3cSIQZBv9cJA5A93bAP4jT8
E7miL6sr6HeEG4Yi8MZRbzzwvQ7Kue4g9P3YCwey1+3AdjxPel4XPg07ywpB
z4vDTuL7vjcArim6np9EHvw1BgE4ScY9+B4W48UdGUSy4y0pCKEQsLBB0gUI
uoN4LMe4Bdis53Z6/WCchD3ZBxrl+73Eha/+ZRSGP9HCQot/qsIR/ndROL5s
ri9VOIIHy++dvpbfR4Squ+4IUfVgiKh6sHsAqLof7nZGwbC7B6L9MByCQtLd
LVB1FzB0pDD0wB/u7ocHu4iho72Bt48YOkQMPeju7+52R7u7B79LL/mSffUP
uqPe/ogvwGi4Bxdg1NkbDtUFOKALsD/ah3923WF/X7/WGQLeDwPvYLd3gHi/
q/F+BHi/D3h/gHi/r/H+H6i+wOigPQE9BfoJWgpoK10fqGPcEd2BKzzPG0Rx
J4jCnpcID4hvr+97QQBCXtJNojj6A9SX9+/ev7k6f/7i7Hnu/pB/zE8uL77b
f3vZf9N7f+ufH/4oR/u/Dsbe/PqlUl8Uj79HfSkpL4XqAoQU/1aKywPYd6Gr
qFdRUL+5lT/kR/Lw++7xyc+91vPxZH706jJ4JidXye3s6Pn87ue9eHJx2f/l
etJyJxe//vj858nh1buLj9Fsni8+4jgovf/s37Zu/YOr59+5wem+/8tFJzl4
fXt28HMe/tC9+eXV+Xe777PbVtA6OXj5whu9P8wPfgz90078tgNy8ft3OA5s
ZCOO3x8fps9Ox7/8cOLfHp73j18ng+D5i1e7t69etd4kH34ZZdMP5+NR/PE6
OTrp9d+87bwevG+dd/N0/CY5WtZwFJC/RLUhOFVVm4dCrLEaZI+CWGMlyOq1
IGu/69Qfr5+AUgXSfzdMQP8JQGoIBj0/kcCsxLgjkwT0f7+PnNSX43gsBq4b
dwXwsU7Q64duCYNr9Z5nx6fJ/Abk4YPj7zthPO9NxfXpPHh+k33fe7P4+PqX
N3vPrl6f78mD8nX4HXrP8x9u9oclvefgu87+/nB0uPcD6Dzlo/tm6egaNrZ/
Yx/dNh3dNpzZN+vOrMGH9k3wzYozu0c50hD4fcqRz8rRsKQc7Z4sdneHw3T3
8JmEZyL4bHd3b/f29p2bHv54/M3V+ctoP31+03AHQRDHF53n+51euOuJ7Ls0
EQf9F79+M3BvX17f7j4/2/a+7z7/5e7FYNe9O/9xeJwOh6d7B2F6c9s5Hzcy
77vX153kmw/uTTeKf+x+mATP8hsZfHd0fPfhJLr75ZvveycfTo8v5Kt36eTk
dLBY+He9b15Hz3vPf/hwETdmp8nRqfjl9Nx9t/1s+OHVr5OfZ6Osu58dfPj5
eW8cHr7Lp+9evEtv3k+nP74+v31+fnA2ef/m23u1K+dYpfoqD4jzQUwudHTY
b19N+dvWTfHp55JO9jy7sa8YsqmE4j3II6OCtjMTss3RFUtVMNjFX3qJnLPF
E5y7hf5o9jFjIYCJc5XBtcDc9zk6T7PFnIp16gLRcaYLb1SzQNuwcEzbvJGc
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
lShasExwBIKNgOd321of+H+KnRgQXYECAA==

-->

</rfc>
