<?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 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chapman-a2a-mls-02" category="exp" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Confidential Agent Messaging">End-to-End Encryption and Purpose-Bound Governance for Agent-to-Agent Messaging</title>
    <seriesInfo name="Internet-Draft" value="draft-chapman-a2a-mls-02"/>
    <author initials="L. D." surname="Chapman" fullname="Luke Daniel Chapman">
      <organization>Qwixl</organization>
      <address>
        <email>luke.chapman@qwixl.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="01"/>
    <area>Security</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>MLS</keyword>
    <keyword>agent</keyword>
    <keyword>end-to-end encryption</keyword>
    <keyword>data minimisation</keyword>
    <keyword>A2A</keyword>
    <abstract>
      <?line 64?>

<t>Agent-to-agent protocols increasingly carry messages between autonomous software
agents acting on behalf of distinct principals, including across organisational
boundaries. Existing protocols in this space secure the transport hop and
authenticate the calling party, but do not provide message-level
confidentiality, do not provide non-repudiable evidence of what a counterparty
asserted, and do not carry machine-enforceable constraints on how a recipient
may use the data conveyed.</t>
      <t>This document specifies a profile that addresses those three gaps. It defines a
Governed Object: a signed, purpose-bound, expiring message envelope identified
by a decentralised identifier. It specifies how such objects are exchanged
inside end-to-end encrypted sessions established using the Messaging Layer
Security (MLS) protocol <xref target="RFC9420"/>, and how the MLS credential is
cryptographically bound to the sending agent's identity. It defines the
encapsulation of these constructs as an extension to an agent-to-agent
transport, using the Agent2Agent (A2A) protocol <xref target="A2A"/> as the reference
binding, and specifies mandatory receiver-side processing rules including
replay rejection and purpose enforcement.</t>
    </abstract>
  </front>
  <middle>
    <?line 85?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>Deployments of agent-to-agent messaging are moving from single-organisation
orchestration towards interactions between agents that represent different
principals: a person and a business, two businesses, or a citizen and a public
body. Three properties that are routinely required in such interactions are not
provided by the agent-to-agent protocols currently in use.</t>
        <dl>
          <dt>Confidentiality against intermediaries.</dt>
          <dd>
            <t>Current practice secures the transport hop, typically with TLS, and
authenticates the caller, typically with OAuth 2.0, OpenID Connect, or mutual
TLS. Any intermediary that terminates TLS -- a gateway, a broker, a hosting
provider, or the platform operating either agent -- can read the full message
content. Where the two principals are mutually independent and the message
content is confidential, commercially sensitive, or personal data, transport
security is insufficient.</t>
          </dd>
          <dt>Non-repudiable assertion.</dt>
          <dd>
            <t>A recipient frequently needs durable evidence of what the counterparty's
agent asserted, and needs it to remain verifiable after the session has
ended, after key rotation, and independently of any log held by an
intermediary. Transport-level authentication does not produce such evidence,
because it authenticates a connection rather than a statement.</t>
          </dd>
          <dt>Machine-enforceable use constraints.</dt>
          <dd>
            <t>When an agent discloses data to a counterparty, the disclosing principal
frequently intends the disclosure to be limited: to a stated purpose, and for
a bounded period. Today that intent, if expressed at all, is expressed in
prose outside the protocol and is therefore not available to the receiving
implementation at the moment of processing.</t>
          </dd>
        </dl>
        <t>These are not hypothetical requirements. In several jurisdictions the second and
third are closely related to statutory obligations; see <xref target="regulatory"/>.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies:</t>
        <ul spacing="normal">
          <li>
            <t>a signed message envelope, the Governed Object, carrying a semantic type, a
payload, a declared purpose, and an expiry (<xref target="governed-object"/>);</t>
          </li>
          <li>
            <t>an agent identity scheme based on Ed25519 <xref target="RFC8032"/> decentralised
identifiers, and a mandatory cryptographic binding between that identity and
the agent's MLS credential (<xref target="identity"/>);</t>
          </li>
          <li>
            <t>establishment of MLS <xref target="RFC9420"/> sessions between agents, including
publication and retrieval of MLS KeyPackages (<xref target="sessions"/>);</t>
          </li>
          <li>
            <t>encapsulation of MLS wire messages and Governed Objects as an extension to an
agent-to-agent transport, with A2A <xref target="A2A"/> as the reference binding
(<xref target="encapsulation"/>);</t>
          </li>
          <li>
            <t>mandatory receiver-side processing rules, including signature verification,
expiry rejection, replay rejection, and purpose enforcement
(<xref target="processing"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="non-goals">
        <name>Non-Goals</name>
        <t>This document does not:</t>
        <ul spacing="normal">
          <li>
            <t>define a new agent-to-agent transport, discovery mechanism, or capability
description format; it layers on an existing one;</t>
          </li>
          <li>
            <t>define agent tool invocation or local resource access, for which the Model
Context Protocol <xref target="MCP"/> and comparable mechanisms are used;</t>
          </li>
          <li>
            <t>provide cryptographic enforcement of purpose limitation. The purpose field is
signed, tamper-evident, and mandatory to enforce at the receiver, but a
non-conforming receiver that has decrypted a message can disregard it. This
is a deliberate limitation, discussed in <xref target="security"/>;</t>
          </li>
          <li>
            <t>specify authorisation policy, business semantics, or user interface
behaviour;</t>
          </li>
          <li>
            <t>specify how a decentralised identifier is bound to a legal or natural
identity. That binding, where required, is provided by credential
presentation layered above this specification and is out of scope.</t>
          </li>
        </ul>
      </section>
      <section anchor="relationship-to-existing-work">
        <name>Relationship to Existing Work</name>
        <t>MLS <xref target="RFC9420"/> provides the group key establishment and message protection
used here. This document does not modify MLS. It specifies a ciphersuite
constraint, a credential-binding requirement, and a transport encapsulation.</t>
        <t>A2A <xref target="A2A"/> provides agent discovery, capability description, and message
transport. A2A version 1.0 supports declared protocol extensions, and this
document is specified as such an extension; <xref target="protocol-version"/> states the
version this binding targets. Nothing here requires changes to A2A itself.</t>
        <t>The mechanism is transport-agnostic in principle. A2A is used as the reference
binding because it is widely deployed and because its extension mechanism makes
the binding expressible without protocol changes.</t>
      </section>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and 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?>

<dl>
        <dt>Agent:</dt>
        <dd>
          <t>A software process that sends and receives messages on behalf of a principal.</t>
        </dd>
        <dt>Principal:</dt>
        <dd>
          <t>The natural person, legal person, or organisation on whose behalf an agent
acts.</t>
        </dd>
        <dt>Agent Identity:</dt>
        <dd>
          <t>A <tt>did:key</tt> identifier <xref target="DIDKEY"/> encoding an Ed25519 public key, used to
identify an agent and to verify its signatures.</t>
        </dd>
        <dt>Governed Object:</dt>
        <dd>
          <t>The signed message envelope specified in <xref target="governed-object"/>.</t>
        </dd>
        <dt>Purpose:</dt>
        <dd>
          <t>A short string in a Governed Object declaring the use for which the payload is
disclosed.</t>
        </dd>
        <dt>Relying Receiver:</dt>
        <dd>
          <t>An implementation that accepts a Governed Object and acts upon its payload.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>Two agents, each holding an Ed25519 key pair, establish an MLS group containing
exactly two members (a pair session) or more than two members (a group
session). Application messages within that group carry Governed Objects
serialised as JSON <xref target="RFC8259"/>.</t>
      <t>The MLS wire bytes are carried inside the agent-to-agent transport as opaque
data. The transport therefore learns the identity of the endpoints and the size
and timing of messages, but not the content.</t>
      <figure anchor="fig-arch">
        <name>Confidential agent messaging</name>
        <artwork><![CDATA[
  Principal A                                     Principal B
      |                                                 |
  +---v-----------+                             +-------v-------+
  |   Agent A     |                             |   Agent B     |
  |               |                             |               |
  | Ed25519 key   |                             | Ed25519 key   |
  | did:key:zA..  |                             | did:key:zB..  |
  +---+-----------+                             +-----------+---+
      |                                                     |
      |  (1) retrieve KeyPackage                            |
      |---------------------------------------------------->|
      |  (2) MLS Welcome + ratchet tree                     |
      |---------------------------------------------------->|
      |                                                     |
      |  (3) MLS application message                        |
      |      = AEAD( JSON( GovernedObject ) )               |
      |<--------------------------------------------------->|
      |                                                     |
   +--+-----------------------------------------------------+--+
   |          agent-to-agent transport (e.g. A2A over HTTPS)   |
   |          sees: endpoints, size, timing. not: content      |
   +----------------------------------------------------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="identity">
      <name>Agent Identity</name>
      <section anchor="identifier-construction">
        <name>Identifier Construction</name>
        <t>An Agent Identity is a <tt>did:key</tt> identifier <xref target="DIDKEY"/> encoding an Ed25519
public key. The identifier is the string <tt>did:key:</tt> followed by the multibase
base58btc encoding (prefix <tt>z</tt>) of the multicodec <tt>ed25519-pub</tt> header
(<tt>0xed 0x01</tt>) concatenated with the 32-byte public key.</t>
        <t>Verifiers <bcp14>MUST</bcp14> derive the public key from the identifier itself. Conforming
implementations <bcp14>MUST NOT</bcp14> require network resolution of the identifier in order
to verify a signature. This property is required so that a Governed Object
remains verifiable offline and after the issuer's service has ceased to
operate.</t>
        <t>Implementations <bcp14>MAY</bcp14> support additional DID methods. Implementations <bcp14>MUST</bcp14> support
<tt>did:key</tt>.</t>
      </section>
      <section anchor="mls-ciphersuite">
        <name>MLS Ciphersuite</name>
        <t>Implementations <bcp14>MUST</bcp14> support MLS ciphersuite
<tt>MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519</tt> (value <tt>0x0001</tt> in the MLS
Ciphersuites registry established by <xref target="RFC9420"/>).</t>
        <t>This ciphersuite is mandatory because its signature scheme is Ed25519, matching
the Agent Identity key type and enabling the binding specified in
<xref target="credential-binding"/>. Implementations <bcp14>MAY</bcp14> negotiate other ciphersuites,
subject to that section.</t>
      </section>
      <section anchor="credential-binding">
        <name>Credential Binding</name>
        <t>An agent's MLS credential <bcp14>MUST</bcp14> be a <tt>basic</tt> credential whose identity is the
UTF-8 encoding of the agent's Agent Identity.</t>
        <t>Furthermore, the MLS <tt>signature_key</tt> in the agent's LeafNode <bcp14>MUST</bcp14> be the same
Ed25519 public key that is encoded in that Agent Identity.</t>
        <t>This requirement is the load-bearing element of this section. Without it, an
attacker who can publish a KeyPackage may assert an arbitrary DID string in the
credential, and a receiver has no cryptographic basis for concluding that
messages from that MLS member originate from the holder of the corresponding
DID. With it, MLS membership and Governed Object authorship are bound to a
single key.</t>
        <t>On receiving a KeyPackage or LeafNode, an implementation <bcp14>MUST</bcp14> verify that the
credential identity parses as a <tt>did:key</tt> Ed25519 identifier and that the
public key so derived is octet-for-octet equal to the LeafNode
<tt>signature_key</tt>. If the check fails, the implementation <bcp14>MUST</bcp14> reject the
KeyPackage and <bcp14>MUST NOT</bcp14> add the member to a group.</t>
        <t>Where a ciphersuite whose signature scheme is not Ed25519 is negotiated, the
binding of <xref target="credential-binding"/> cannot be expressed by key equality. In that
case implementations <bcp14>MUST</bcp14> instead require the credential identity to be
accompanied by a proof of possession: a signature, made with the Agent
Identity key, over the MLS <tt>signature_key</tt>. Definition of that proof's
encoding is deferred to a future revision of this document; until it is
specified, implementations that require the binding <bcp14>MUST</bcp14> use ciphersuite
<tt>0x0001</tt>.</t>
      </section>
    </section>
    <section anchor="governed-object">
      <name>The Governed Object</name>
      <section anchor="structure">
        <name>Structure</name>
        <t>A Governed Object is a JSON object <xref target="RFC8259"/> with the following members. All
listed members are mandatory unless stated otherwise.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>version</tt></td>
              <td align="left">number</td>
              <td align="left">Format version. <bcp14>MUST</bcp14> be <tt>1</tt> for this specification.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">Unique object identifier. <bcp14>MUST</bcp14> be unique per issuer.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuerDid</tt></td>
              <td align="left">string</td>
              <td align="left">Agent Identity of the signer.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuedAt</tt></td>
              <td align="left">string</td>
              <td align="left">Issuance time, RFC 3339 date-time in UTC.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>semantic</tt></td>
              <td align="left">object</td>
              <td align="left">Type descriptor; see below.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>payload</tt></td>
              <td align="left">object</td>
              <td align="left">Application data.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>governance</tt></td>
              <td align="left">object</td>
              <td align="left">Use constraints; see <xref target="governance"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signatureAlgorithm</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>MUST</bcp14> be <tt>"ed25519"</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signature</tt></td>
              <td align="left">string</td>
              <td align="left">Base64 <xref target="RFC4648"/> Ed25519 signature.</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>semantic</tt> member has a mandatory <tt>schema</tt> member containing an absolute
URI identifying the payload type, and <bcp14>OPTIONAL</bcp14> <tt>version</tt> and <tt>embeddingHint</tt>
members.</t>
        <t>The <tt>id</tt> member <bcp14>MUST</bcp14> be unique per issuer and <bcp14>SHOULD</bcp14> be a UUID or other value
with negligible collision probability. Receivers rely on this for replay
rejection (<xref target="replay"/>).</t>
      </section>
      <section anchor="governance">
        <name>Governance</name>
        <t>The <tt>governance</tt> member carries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>purpose</tt></td>
              <td align="left">string</td>
              <td align="left">Mandatory. Declared use for the payload.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ttlSeconds</tt></td>
              <td align="left">number</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>. Lifetime in seconds from <tt>issuedAt</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>expiresAt</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>. Absolute expiry, RFC 3339 date-time.</td>
            </tr>
          </tbody>
        </table>
        <t>If both <tt>ttlSeconds</tt> and <tt>expiresAt</tt> are present, the earlier resulting instant
is the effective expiry. If neither is present, the object does not expire, and
receivers <bcp14>SHOULD</bcp14> apply a locally configured maximum lifetime.</t>
        <t>Purpose strings are lowercase, colon-delimited, and hierarchical, for example
<tt>comms:message</tt> or <tt>coordination:proposal</tt>. Purpose values are application
domain vocabulary; this document does not define a registry, but see
<xref target="iana"/> for a discussion of whether one is warranted.</t>
      </section>
      <section anchor="canonical">
        <name>Canonical Serialisation</name>
        <t>The signature is computed over a canonical serialisation of the object's
content, excluding <tt>signatureAlgorithm</tt> and <tt>signature</tt>.</t>
        <t>The canonical form is produced by serialising the JSON object consisting of
exactly the members <tt>version</tt>, <tt>id</tt>, <tt>issuerDid</tt>, <tt>issuedAt</tt>, <tt>semantic</tt>,
<tt>payload</tt>, and <tt>governance</tt>, such that:</t>
        <ol spacing="normal" type="1"><li>
            <t>object members are ordered lexicographically by their UTF-16 code unit
sequence;</t>
          </li>
          <li>
            <t>members whose value is undefined or absent are omitted;</t>
          </li>
          <li>
            <t>array element order is preserved;</t>
          </li>
          <li>
            <t>no insignificant whitespace is emitted;</t>
          </li>
          <li>
            <t>strings and numbers are serialised as specified by <xref target="RFC8259"/>.</t>
          </li>
        </ol>
        <t>Implementations <bcp14>SHOULD</bcp14> use JSON Canonicalization Scheme <xref target="RFC8785"/> where
available; it satisfies the requirements above for the value space used by this
specification.</t>
        <t>Nested objects within <tt>semantic</tt>, <tt>payload</tt>, and <tt>governance</tt> are canonicalised
recursively by the same rules.</t>
        <t>Payload authors <bcp14>SHOULD</bcp14> avoid floating-point numbers, because canonical
serialisation of floating-point values is a known source of cross-language
interoperability failure. Where numeric precision matters, payloads <bcp14>SHOULD</bcp14>
encode values as strings or as integers in a stated minor unit.</t>
      </section>
      <section anchor="signing">
        <name>Signing</name>
        <t>The signature is <tt>Ed25519(privateKey, UTF8(canonicalForm))</tt> as specified in
<xref target="RFC8032"/>, encoded per <xref target="RFC4648"/> Section 4 (base64 with padding).</t>
      </section>
      <section anchor="verification">
        <name>Verification</name>
        <t>A verifier <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>confirm <tt>version</tt> equals <tt>1</tt>;</t>
          </li>
          <li>
            <t>confirm <tt>signatureAlgorithm</tt> equals <tt>"ed25519"</tt>;</t>
          </li>
          <li>
            <t>derive the Ed25519 public key from <tt>issuerDid</tt> per <xref target="identity"/>;</t>
          </li>
          <li>
            <t>recompute the canonical form per <xref target="canonical"/>;</t>
          </li>
          <li>
            <t>verify the signature.</t>
          </li>
        </ol>
        <t>Verification failure <bcp14>MUST</bcp14> cause the object to be rejected.</t>
      </section>
    </section>
    <section anchor="sessions">
      <name>Session Establishment</name>
      <section anchor="keypackage-publication">
        <name>KeyPackage Publication</name>
        <t>An agent that accepts incoming sessions publishes MLS KeyPackages. Where the
A2A binding of <xref target="encapsulation"/> is used, the agent <bcp14>SHOULD</bcp14> expose them at the
path <tt>/mls/key-package</tt> relative to its A2A service endpoint, returning a JSON
object with members <tt>did</tt> (the Agent Identity) and <tt>wire</tt> (the base64-encoded
MLS KeyPackage).</t>
        <t>Publishing endpoints <bcp14>MUST</bcp14> rate-limit KeyPackage retrieval. KeyPackages are
single-use in MLS; unbounded retrieval permits exhaustion of an agent's
pre-published supply.</t>
        <t>Retrievers <bcp14>MUST</bcp14> perform the credential binding check of
<xref target="credential-binding"/> on the retrieved KeyPackage before use.</t>
      </section>
      <section anchor="establishing-a-pair-session">
        <name>Establishing a Pair Session</name>
        <t>The initiating agent creates an MLS group containing itself, then commits an Add
proposal for the responding agent using the retrieved KeyPackage, and delivers
the resulting Welcome message and ratchet tree to the responder using the
handshake encapsulation of <xref target="handshake-part"/>.</t>
        <t>Where the responder's identity was learned from an out-of-band invitation that
asserted a specific Agent Identity, the initiator <bcp14>MUST</bcp14> verify that the
retrieved KeyPackage's credential identity equals the asserted identity, and
<bcp14>MUST</bcp14> abort establishment on mismatch. Absent this check, an attacker who
controls the endpoint named in an invitation can substitute their own identity.</t>
      </section>
      <section anchor="group-sessions">
        <name>Group Sessions</name>
        <t>Sessions with more than two members follow MLS group semantics unchanged. Any
member with commit rights, as determined by local policy, <bcp14>MAY</bcp14> add or remove
members. This document places no additional requirements on group membership
policy, but implementations <bcp14>MUST</bcp14> apply the credential binding check of
<xref target="credential-binding"/> to every joining member.</t>
      </section>
      <section anchor="session-persistence">
        <name>Session Persistence</name>
        <t>Implementations that persist MLS group state across process restarts <bcp14>MUST</bcp14>
protect that state at rest with confidentiality and integrity equivalent to the
protection afforded to long-term private keys. Group state contains the secrets
necessary to decrypt past and future epochs.</t>
      </section>
    </section>
    <section anchor="encapsulation">
      <name>Encapsulation</name>
      <t>This section specifies the A2A <xref target="A2A"/> binding.</t>
      <section anchor="protocol-version">
        <name>Protocol Version</name>
        <t>This binding is specified against A2A version 1.0. Two properties of that
version are relied upon: a message part carries a <tt>mediaType</tt> member of its own,
and a message may enumerate the extensions it depends upon.</t>
        <t>A2A version 0.3 provided neither. Implementations <bcp14>MAY</bcp14> interoperate with peers
speaking version 0.3 by applying <xref target="version-compat"/>, and the reference
implementation does so, but a conforming implementation of this document
transmits version 1.0.</t>
        <t>Throughout this section, part and message members are named as they appear in
the JSON serialisation on the wire. An implementation generated from the A2A
protocol buffer schema will present the part content as a language-level tagged
union; that representation is an artefact of code generation and is not
observable by a peer.</t>
      </section>
      <section anchor="extension-declaration">
        <name>Extension Declaration</name>
        <t>An agent supporting the <strong>Governed Object</strong> profile defined in this document
<bcp14>MUST</bcp14> declare the extension URI <tt>https://atom.qwixl.dev/a2a/data-object/v1</tt> in
the <tt>capabilities.extensions</tt> member of its Agent Card, with <tt>required</tt> set to
false.</t>
        <t>A message carrying one or more <strong>Governed Object</strong> parts <bcp14>SHOULD</bcp14> list that URI
in the message's <tt>extensions</tt> member. A message that carries only MLS wire or
MLS handshake parts <bcp14>MUST NOT</bcp14> stamp the Governed Object URI in <tt>extensions</tt>
(the GO claim stays narrow; MLS <bcp14>MAY</bcp14> later ship under its own extension URI).
A receiver <bcp14>MUST NOT</bcp14> require the <tt>extensions</tt> member to be present, since a peer
speaking A2A version 0.3 has no such member to populate, and <bcp14>MUST NOT</bcp14> rely upon
it to identify a part: the media type is authoritative.</t>
        <t>The A2A extension specification for the Governed Object profile alone (without
MLS) is published under <tt>spec/extensions/data-object-v1/</tt> in the reference
implementation repository. This Internet-Draft remains the broader provenance
document covering Governed Objects together with MLS session mechanics.</t>
        <t>Editor's note: this URI reflects the deployed reference implementation. Should
this document be adopted by a standards body, the URI is expected to be
reassigned under that body's namespace. Implementations <bcp14>SHOULD</bcp14> treat the URI as
an opaque identifier.</t>
      </section>
      <section anchor="media-type-placement">
        <name>Media Type Placement</name>
        <t>Each part specified below is identified by one of the media types in <xref target="iana"/>.
A sender <bcp14>MUST</bcp14> set the media type in the part's <tt>mediaType</tt> member, and <bcp14>SHOULD</bcp14>
also set a <tt>mediaType</tt> member within the part's <tt>data</tt> object with the identical
value.</t>
        <t>A receiver <bcp14>MUST</bcp14> determine the media type from the part's <tt>mediaType</tt> member when
that member is present and non-empty, and <bcp14>MUST</bcp14> fall back to the <tt>mediaType</tt>
member within the <tt>data</tt> object otherwise. Where both are present and they
disagree, the receiver <bcp14>MUST</bcp14> reject the part.</t>
        <t>The duplication exists because version 0.3 of A2A had no <tt>mediaType</tt> member on a
part, obliging deployments written against A2A version 0.3 to carry the
media type inside the payload. A receiver that reads only the inner member
therefore continues to interoperate. A sender <bcp14>MAY</bcp14> omit the inner member once no
such receiver remains reachable; this document retains it as a <bcp14>SHOULD</bcp14> rather
than a <bcp14>MUST</bcp14> for that reason.</t>
      </section>
      <section anchor="governed-object-part">
        <name>Governed Object Part</name>
        <t>A Governed Object <bcp14>MAY</bcp14> be carried unencrypted in an A2A message part whose <tt>data</tt>
member is a JSON object with members <tt>mediaType</tt>, set to
<tt>application/vnd.atom.data-object+json;version=1</tt> per
<xref target="media-type-placement"/>, and <tt>object</tt>, set to the Governed Object.</t>
        <artwork><![CDATA[
{
  "data": {
    "mediaType": "application/vnd.atom.data-object+json;version=1",
    "object": { ... Governed Object ... }
  },
  "mediaType": "application/vnd.atom.data-object+json;version=1"
}
]]></artwork>
        <t>Unencrypted carriage provides authenticity and governance metadata but not
confidentiality. Implementations <bcp14>MUST NOT</bcp14> use unencrypted carriage for personal
data or otherwise confidential payloads where an MLS session can be
established. Implementations <bcp14>SHOULD</bcp14> default to encrypted carriage.</t>
      </section>
      <section anchor="mls-wire-part">
        <name>MLS Wire Part</name>
        <t>MLS wire messages are carried in an A2A message part whose <tt>data</tt> member is a
JSON object with members <tt>mediaType</tt>, set to
<tt>application/vnd.atom.mls-wire+cbor;version=1</tt> per <xref target="media-type-placement"/>,
and <tt>wire</tt>, set to the base64 encoding <xref target="RFC4648"/> of the MLSMessage as
serialised per <xref target="RFC9420"/>.</t>
        <artwork><![CDATA[
{
  "data": {
    "mediaType": "application/vnd.atom.mls-wire+cbor;version=1",
    "wire": "<base64 MLSMessage>"
  },
  "mediaType": "application/vnd.atom.mls-wire+cbor;version=1"
}
]]></artwork>
        <t>The decrypted application message plaintext is the UTF-8 encoding of a JSON
object with a member <tt>object</tt> containing a Governed Object. Implementations <bcp14>MAY</bcp14>
define additional members; receivers <bcp14>MUST</bcp14> ignore members they do not
recognise.</t>
      </section>
      <section anchor="handshake-part">
        <name>Handshake Part</name>
        <t>MLS Welcome messages and the accompanying ratchet tree are carried in an A2A
message part whose <tt>data</tt> member is a JSON object with member <tt>mediaType</tt> set to
<tt>application/vnd.atom.mls-handshake+json;version=1</tt> per
<xref target="media-type-placement"/>, and members conveying the base64-encoded Welcome and
ratchet tree.</t>
      </section>
      <section anchor="agent-card">
        <name>Agent Card</name>
        <t>An agent's endpoints are declared in the <tt>supportedInterfaces</tt> member of its
Agent Card, an ordered list in which the first entry is the sender's preferred
interface and each entry states the A2A protocol version that interface speaks.
A2A version 0.3 instead declared a single endpoint in a top-level <tt>url</tt> member;
an implementation reading a card <bcp14>MUST NOT</bcp14> depend on that member.</t>
        <t>An agent <bcp14>MAY</bcp14> declare more than one interface at the same URL in order to serve
more than one protocol version, and the reference implementation does so.</t>
        <t>An Agent Card <bcp14>MAY</bcp14> carry one or more JWS signatures in its <tt>signatures</tt> member.
Where an agent's identity is a <tt>did:key</tt> as specified in <xref target="identity"/>, the
signature's <tt>kid</tt> header parameter <bcp14>SHOULD</bcp14> be that identifier, because the
verifying key is then recoverable from the identifier itself and card
verification requires no key distribution mechanism and no further network
retrieval.</t>
        <t>A relying party that verifies a card signature <bcp14>MUST</bcp14> treat the identifier in
<tt>kid</tt> as the identity that produced the card, and <bcp14>MUST NOT</bcp14> infer from a valid
signature that the card's contents are endorsed by any other identity named
within it. Transport security establishes control of the origin serving a card;
it establishes nothing about the agent the card describes. An unsigned card
therefore permits any party controlling an origin to publish a card asserting
any agent identity, and a relying party that acts on such an assertion -- for
instance, to associate a domain with an agent -- <bcp14>SHOULD</bcp14> require a signature whose
<tt>kid</tt> matches the asserted identity.</t>
      </section>
      <section anchor="version-compat">
        <name>Version Compatibility</name>
        <t>An implementation <bcp14>MAY</bcp14> accept and originate A2A version 0.3 messages in addition
to version 1.0. Where it does:</t>
        <ul spacing="normal">
          <li>
            <t>The version of a received message is determined by the <tt>A2A-Version</tt> header
field. Its absence denotes version 0.3.</t>
          </li>
          <li>
            <t>The version to use towards a given peer is determined by that peer's Agent
Card, per <xref target="agent-card"/>.</t>
          </li>
          <li>
            <t>A part received from a version 0.3 peer carries the media type only within
the <tt>data</tt> object, which <xref target="media-type-placement"/> accommodates.</t>
          </li>
        </ul>
        <t>Deployment order is not symmetric, and this has operational consequence. A
receiver that accepts both versions is compatible with senders of either, but a
sender that has begun transmitting version 1.0 is not compatible with a receiver
that accepts only version 0.3. In a network upgraded incrementally, every
receiver <bcp14>MUST</bcp14> therefore be capable of the newer version before any sender
originates it.</t>
      </section>
      <section anchor="transport-authentication">
        <name>Transport Authentication</name>
        <t>The transport carrying these parts <bcp14>MUST</bcp14> authenticate the calling party using a
mechanism defined by the underlying protocol, such as those enumerated in
<xref target="A2A"/>.</t>
        <t>An unauthenticated transport endpoint permits an unbounded set of parties to
consume the receiver's resources, to enqueue messages, and to attempt session
establishment. End-to-end encryption does not mitigate this: MLS protects
content, not availability. Implementations <bcp14>MUST NOT</bcp14> expose an unauthenticated
message-submission endpoint in production.</t>
      </section>
    </section>
    <section anchor="processing">
      <name>Receiver Processing Rules</name>
      <section anchor="mandatory-ordered-checks">
        <name>Mandatory Ordered Checks</name>
        <t>On receiving a Governed Object, whether from a decrypted MLS application message
or from unencrypted carriage, a Relying Receiver <bcp14>MUST</bcp14> perform the following
checks, and <bcp14>MUST</bcp14> perform them in this order:</t>
        <ol spacing="normal" type="1"><li>
            <t>Structural validation against <xref target="governed-object"/>. Reject on failure.</t>
          </li>
          <li>
            <t>Signature verification per <xref target="governed-object"/>. Reject on failure.</t>
          </li>
          <li>
            <t>Where the object arrived inside an MLS session, confirm that <tt>issuerDid</tt>
equals the Agent Identity in the credential of the MLS member that sent the
message. Reject on mismatch.</t>
          </li>
          <li>
            <t>Expiry evaluation per <xref target="governance"/>. Reject if expired.</t>
          </li>
          <li>
            <t>Replay rejection per <xref target="replay"/>. Reject if already seen.</t>
          </li>
          <li>
            <t>Purpose enforcement per <xref target="purpose-enforcement"/>. Reject if not permitted.</t>
          </li>
        </ol>
        <t>Only after all six checks succeed may the receiver act upon <tt>payload</tt>.</t>
        <t>Check 3 is essential and is easily omitted. Without it, any member of a group
can emit an object bearing another member's <tt>issuerDid</tt>; the signature check
alone does not detect this, because the signature is valid -- it is simply not
made by the party that sent it. Implementations <bcp14>MUST NOT</bcp14> treat a valid signature
as evidence of who transmitted the message.</t>
      </section>
      <section anchor="replay">
        <name>Replay Rejection</name>
        <t>A Relying Receiver <bcp14>MUST</bcp14> reject a Governed Object whose <tt>id</tt> it has previously
accepted from the same <tt>issuerDid</tt>.</t>
        <t>Receivers <bcp14>MUST</bcp14> retain accepted <tt>(issuerDid, id)</tt> pairs for at least the maximum
object lifetime they will accept. Where a receiver applies a maximum accepted
lifetime, retention for that period is sufficient, because an older object is
rejected by check 4 regardless.</t>
        <t>Absent this requirement, a passive observer of unencrypted carriage, or any
member of an MLS group, can re-present a previously valid object. Where objects
convey instructions with side effects -- a payment authorisation, a booking
confirmation, a consent grant -- replay is directly exploitable.</t>
      </section>
      <section anchor="purpose-enforcement">
        <name>Purpose Enforcement</name>
        <t>A Relying Receiver <bcp14>MUST</bcp14> maintain, per processing context, a set of permitted
purpose values, and <bcp14>MUST</bcp14> reject an object whose <tt>governance.purpose</tt> is not in
that set.</t>
        <t>The set <bcp14>MUST</bcp14> be determined by the receiver's own configuration for the context
in which the object is being processed. It <bcp14>MUST NOT</bcp14> be derived from the object
itself, nor from any value under the sender's control.</t>
        <t>Receivers <bcp14>MUST NOT</bcp14> use a payload for a purpose other than the one declared, and
<bcp14>MUST NOT</bcp14> retain it beyond its expiry, save where an independent legal obligation
requires retention.</t>
      </section>
      <section anchor="rejection-behaviour">
        <name>Rejection Behaviour</name>
        <t>A receiver rejecting an object <bcp14>SHOULD</bcp14> emit a diagnostic distinguishable by
cause, for operator use. A receiver <bcp14>SHOULD NOT</bcp14> return to the sender information
that distinguishes between rejection causes beyond what is necessary for
interoperability, because fine-grained rejection reasons assist an attacker in
probing receiver configuration -- in particular in enumerating the permitted
purpose set.</t>
      </section>
    </section>
    <section anchor="regulatory">
      <name>Regulatory Alignment</name>
      <t>This section is informative.</t>
      <t>The constructs specified here correspond to obligations that exist independently
of this document in several jurisdictions. In the European Union, <xref target="GDPR"/>
Article 5(1)(b) requires that personal data be collected for specified purposes
and not further processed incompatibly with them; Article 5(1)(c) requires data
minimisation; and Article 5(1)(e) requires that data be kept no longer than
necessary.</t>
      <t>A Governed Object carries the specified purpose and the retention limit as
signed metadata available to the receiving implementation at the moment of
processing, rather than as prose in an agreement negotiated out of band. The
mandatory receiver-side enforcement of <xref target="purpose-enforcement"/> makes those
constraints operative in code.</t>
      <t>This does not constitute compliance, and this document does not offer legal
advice. It observes only that the mechanism places the relevant facts where an
implementation can act on them, which is a precondition for compliance being
demonstrable rather than merely asserted.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="what-this-specification-provides">
        <name>What This Specification Provides</name>
        <t>Within an MLS session, message content is confidential from the transport and
from any intermediary, with the forward secrecy and post-compromise security
properties of <xref target="RFC9420"/>. Governed Objects are authenticated and integrity
protected by Ed25519 signatures that remain verifiable independently of the
session and after it ends, providing durable evidence of authorship. The
credential binding of <xref target="credential-binding"/> ties MLS membership to the same
key, so that transmission and authorship cannot be separated.</t>
      </section>
      <section anchor="what-it-does-not-provide">
        <name>What It Does Not Provide</name>
        <t>Purpose limitation is not cryptographically enforced. A receiver that has
decrypted a message is in possession of the plaintext and can disregard the
declared purpose and expiry. The mechanism provides a signed, non-repudiable
record of the constraint under which disclosure was made, which converts an
undetectable breach into an attributable one. It does not prevent the breach.
Constructions that would provide stronger enforcement, such as purpose-bound
decryption keys or confidential computing attestation, are out of scope.</t>
        <t>A DID is not an identity. It denotes control of a key. Binding a DID to a legal
or natural person requires a credential presentation layer above this
specification.</t>
        <t>Compromise of an agent's Ed25519 private key compromises both its MLS
membership and its ability to sign Governed Objects, precisely because
<xref target="credential-binding"/> unifies them. Implementations <bcp14>MUST</bcp14> protect this key
accordingly, and <bcp14>SHOULD</bcp14> use non-exportable key storage where the platform
provides it. The unification is a deliberate trade: it eliminates a class of
impersonation attack at the cost of concentrating key-compromise impact.</t>
        <t>MLS provides no protection against traffic analysis, and this specification adds
none. Endpoints, message sizes, and timing are visible to the transport.</t>
      </section>
      <section anchor="availability">
        <name>Availability</name>
        <t>An unauthenticated message-submission endpoint is a denial-of-service vector
regardless of encryption; see <xref target="encapsulation"/>. KeyPackage exhaustion is a
related vector; see <xref target="sessions"/>.</t>
        <t>Implementations that queue messages for offline recipients <bcp14>MUST</bcp14> bound queue size
and <bcp14>MUST</bcp14> apply the checks of <xref target="processing"/> on dequeue rather than only on
enqueue. Deferring validation to dequeue without bounding the queue permits an
attacker to cause unbounded storage consumption with unvalidated input.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>This document uses three media types, currently registered in neither the
standards nor the vendor tree. The deployed reference implementation uses
vendor-tree names.</t>
        <t>If this document advances, the author requests registration of the following in
the standards tree, with the vendor-tree names retained as deprecated aliases:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Proposed</th>
              <th align="left">Deployed</th>
              <th align="left">Purpose</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/governed-object+json</tt></td>
              <td align="left">
                <tt>application/vnd.atom.data-object+json</tt></td>
              <td align="left">Governed Object</td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/mls-wire+cbor</tt></td>
              <td align="left">
                <tt>application/vnd.atom.mls-wire+cbor</tt></td>
              <td align="left">MLS wire message</td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/mls-handshake+json</tt></td>
              <td align="left">
                <tt>application/vnd.atom.mls-handshake+json</tt></td>
              <td align="left">Welcome and ratchet tree</td>
            </tr>
          </tbody>
        </table>
        <t>Complete registration templates will be supplied in a subsequent revision.</t>
      </section>
      <section anchor="purpose-value-registry">
        <name>Purpose Value Registry</name>
        <t>This document requests the creation of a new IANA registry entitled
<strong>Governed Object Purpose Values</strong>.</t>
        <t>Each entry has: Value (string), Prefix, Description, Payload schema (HTTPS
URI), Reference, Status (<tt>provisional</tt>, <tt>permanent</tt>, or <tt>obsolete</tt>), and
Change Controller.</t>
        <t>Registration procedures: Expert Review for <tt>provisional</tt> and <tt>obsolete</tt>
entries; Standards Action for <tt>permanent</tt> entries (<xref target="RFC8126"/>).
Provisional entries <bcp14>MUST</bcp14> be revised, promoted, or obsoleted within 24 months
of last substantive change.</t>
        <t>IANA registration of a purpose <bcp14>MUST NOT</bcp14> be interpreted as (i) permission to
process, (ii) default allowlist membership, or (iii) authorisation for side
effects. Receivers that move money, mutate durable external state, or disclose
secrets <bcp14>MUST</bcp14> apply separate confirmation and policy controls; purpose alone is
insufficient. Registered purposes remain subject to receiver-configured
allowlists; an empty or absent allowlist is a deployment profile that does not
grant cross-implementation purpose alignment (see also the Atom Governed Object
A2A extension deployment-profile note).</t>
        <t>Purpose values identify the <em>kind</em> of Governed Object. Strings such as
<tt>action:reserve</tt>, <tt>room:receipt</tt>, and <tt>room:checkpoint</tt> may appear in
implementations but are not part of the initial IANA contents; they remain
implementation-defined until proposed with a stable payload contract.
<tt>action:qualify</tt> is intentionally omitted from the initial contents.</t>
        <t>Initial provisional contents (payment rail cluster):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Prefix</th>
              <th align="left">Description (summary)</th>
              <th align="left">Payload schema</th>
              <th align="left">Status</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>action:hold</tt></td>
              <td align="left">action</td>
              <td align="left">Authorization hold on a payment rail. <bcp14>MUST NOT</bcp14> auto-place holds from purpose alone.</td>
              <td align="left">https://atom.qwixl.dev/schema/ActionHold</td>
              <td align="left">provisional</td>
            </tr>
            <tr>
              <td align="left">
                <tt>action:confirm</tt></td>
              <td align="left">action</td>
              <td align="left">Party confirmation before capture. <bcp14>MUST NOT</bcp14> capture funds.</td>
              <td align="left">https://atom.qwixl.dev/schema/ActionConfirm</td>
              <td align="left">provisional</td>
            </tr>
            <tr>
              <td align="left">
                <tt>action:capture</tt></td>
              <td align="left">action</td>
              <td align="left">Capture of a previously placed hold. <bcp14>MUST NOT</bcp14> capture without prior hold + confirm policy.</td>
              <td align="left">https://atom.qwixl.dev/schema/ActionCapture</td>
              <td align="left">provisional</td>
            </tr>
            <tr>
              <td align="left">
                <tt>action:release</tt></td>
              <td align="left">action</td>
              <td align="left">Compensating release of a hold.</td>
              <td align="left">https://atom.qwixl.dev/schema/ActionRelease</td>
              <td align="left">provisional</td>
            </tr>
            <tr>
              <td align="left">
                <tt>action:receipt</tt></td>
              <td align="left">action</td>
              <td align="left">Signed receipt after capture.</td>
              <td align="left">https://atom.qwixl.dev/schema/ActionReceipt</td>
              <td align="left">provisional</td>
            </tr>
          </tbody>
        </table>
        <t>Additional application-specific purposes (for example product UI verbs under
vendor or product prefixes) are implementation-defined and <bcp14>MUST NOT</bcp14> be claimed
as registered solely because they appear in a particular deployment.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publication as an RFC, per <xref target="RFC7942"/>.</t>
      <t>An open source implementation exists under the Apache License 2.0 at
<tt>https://github.com/Qwixl/Atom</tt>, and is deployed in a small public network.</t>
      <t>Implemented and interoperability-tested between two independent processes over
HTTP:</t>
      <ul spacing="normal">
        <li>
          <t>Governed Object construction, canonical serialisation, Ed25519 signing, and
verification, including tamper and expiry rejection.</t>
        </li>
        <li>
          <t><tt>did:key</tt> Ed25519 identity derivation without network resolution.</t>
        </li>
        <li>
          <t>MLS pair and group sessions using ciphersuite <tt>0x0001</tt> via the <tt>ts-mls</tt>
library, including KeyPackage publication and retrieval, Welcome and ratchet
tree delivery, application message encryption and decryption, and group state
persistence.</t>
        </li>
        <li>
          <t>The A2A binding of <xref target="encapsulation"/> at protocol version 1.0, including
extension declaration in the Agent Card and per message, all three part
encodings, and media type placement in both positions per
<xref target="media-type-placement"/>.</t>
        </li>
        <li>
          <t>Version compatibility with A2A version 0.3 per <xref target="version-compat"/>, in both
directions, tested against the published version 0.3 implementation rather
than against a substitute: a version 1.0 sender delivering to a version 0.3
receiver, and a version 0.3 sender delivering to a version 1.0 receiver.</t>
        </li>
        <li>
          <t>Agent Card signing and verification per <xref target="agent-card"/>, with <tt>kid</tt> set to the
agent's <tt>did:key</tt> and the verifying key recovered from that identifier without
network retrieval. The relying check described there -- requiring the signing
identity to match an asserted identity before associating a domain with an
agent -- is applied.</t>
        </li>
        <li>
          <t>Purpose enforcement by receiver-configured allowlist, and expiry rejection.</t>
        </li>
        <li>
          <t>Out-of-band invitation with identity assertion, and abort on identity
mismatch.</t>
        </li>
        <li>
          <t>Transport authentication on the message-submission endpoint
(<xref target="encapsulation"/>): Agent Cards declare an HTTP Bearer scheme
(<tt>atomDidBearer</tt>), and <tt>/a2a/jsonrpc</tt> requires an Atom DID Bearer token
(<tt>Authorization: Bearer atom.&lt;payload&gt;.&lt;sig&gt;</tt>) signed by the caller's
<tt>did:key</tt>, with audience bound to the peer's public base URL.</t>
        </li>
      </ul>
      <t>Previously deferred and now implemented in the reference libraries:</t>
      <ul spacing="normal">
        <li>
          <t>The credential binding key-equality check of <xref target="credential-binding"/>
(<tt>@qwixl/protocol</tt> + <tt>@qwixl/mls-session</tt> KeyPackage generation and admission).</t>
        </li>
        <li>
          <t>Replay rejection (<xref target="replay"/>) via <tt>ReplayGuard</tt> in <tt>@qwixl/protocol</tt>, wired
through the agent backend receive paths.</t>
        </li>
        <li>
          <t>Check 3 of <xref target="processing"/>, confirming <tt>issuerDid</tt> against the sending MLS
member's LeafNode credential (<tt>decrypt</tt> returns <tt>senderDid</tt>;
<tt>verifyDataObject({ expectedMlsSenderDid })</tt>).</t>
        </li>
        <li>
          <t>Validation on dequeue for messages queued to offline recipients
(<xref target="security"/>): <tt>dequeueAsleepMessages</tt> applies <xref target="processing"/> when the
agent wakes; the queue remains size-bounded at enqueue.</t>
        </li>
      </ul>
      <t>The author notes that several of these items were identified by the exercise
of writing this specification, having not been apparent from the working
implementation. This is offered as evidence for the general proposition that
specification and implementation are not redundant activities.</t>
      <t>A further instance arose in preparing this document. The reference
implementation's own documentation described a part using the tagged-union form
produced by its code generator, rather than the JSON actually transmitted. The
discrepancy was invisible to that implementation, which both produced and
consumed the same internal representation, and would have been discovered only
by a second implementation in another language attempting to interoperate from
the description. The requirement in <xref target="protocol-version"/> that members be named
as they appear on the wire, and the encapsulation vectors of <xref target="vectors"/>, exist
to prevent a recurrence.</t>
    </section>
    <section anchor="changes-from-draft-chapman-a2a-mls-01">
      <name>Changes from draft-chapman-a2a-mls-01</name>
      <ul spacing="normal">
        <li>
          <t>Replaced the Purpose Value Registry solicit-input text with a concrete IANA
registry request for <strong>Governed Object Purpose Values</strong>, Expert Review /
Standards Action procedures, and five provisional payment-rail purposes
(<tt>action:hold</tt>, <tt>action:confirm</tt>, <tt>action:capture</tt>, <tt>action:release</tt>,
<tt>action:receipt</tt>). Registration is not authorisation; empty allowlists remain
a deployment-profile choice.</t>
        </li>
        <li>
          <t>Added <xref target="RFC8126"/> as a normative reference for registration procedures.</t>
        </li>
      </ul>
    </section>
    <section anchor="changes-from-draft-chapman-a2a-mls-00">
      <name>Changes from draft-chapman-a2a-mls-00</name>
      <ul spacing="normal">
        <li>
          <t>Clarified <xref target="encapsulation"/> Extension Declaration: messages carrying only MLS
wire or MLS handshake parts <bcp14>MUST NOT</bcp14> stamp the Governed Object extension URI;
GO-carrying messages <bcp14>SHOULD</bcp14> list it. The Agent Card declaration for the GO
URI uses <tt>required</tt> false.</t>
        </li>
        <li>
          <t>Noted the separately published GO-only A2A extension profile under
<tt>spec/extensions/data-object-v1/</tt> in the reference implementation repository.
This document remains the broader GO+MLS provenance draft.</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </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="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC8126">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="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>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org/">
          <front>
            <title>Agent2Agent (A2A) Protocol Specification, Version 1.0</title>
            <author>
              <organization>A2A Project (Linux Foundation)</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DIDKEY" target="https://w3c-ccg.github.io/did-method-key/">
          <front>
            <title>The did:key Method</title>
            <author>
              <organization>W3C Credentials Community Group</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/">
          <front>
            <title>Model Context Protocol</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GDPR" target="https://eur-lex.europa.eu/eli/reg/2016/679/oj">
          <front>
            <title>Regulation (EU) 2016/679 (General Data Protection Regulation)</title>
            <author>
              <organization>European Union</organization>
            </author>
            <date year="2016"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 907?>

<section anchor="vectors">
      <name>Test Vectors</name>
      <t>Machine-readable test vectors accompany this document, comprising: signed
Governed Objects with known Ed25519 key pairs and their canonical
serialisations; objects with mutated payloads that <bcp14>MUST</bcp14> fail verification;
expired objects; objects whose declared purpose is outside a stated permitted
set; a replayed object pair; and a KeyPackage whose credential identity does not
match its signature key, which <bcp14>MUST</bcp14> be rejected per <xref target="credential-binding"/>.</t>
      <t>A second group of vectors covers the encapsulation of <xref target="encapsulation"/> as
serialised JSON, independently of any Governed Object contained within: parts
carrying the media type in the part member, in the <tt>data</tt> member, and in both;
a part whose two media type members disagree, which <bcp14>MUST</bcp14> be rejected per
<xref target="media-type-placement"/>; and a part bearing no media type in either position.
These vectors exist because the encapsulation is the layer at which two
implementations in different languages first fail to interoperate, and it is the
layer least well served by reading either implementation's source.</t>
      <t>Vectors are published at <tt>https://github.com/Qwixl/Atom</tt> under <tt>spec/vectors/</tt>.
An implementation claiming conformance to this document <bcp14>SHOULD</bcp14> produce the
specified outcome for every vector.</t>
      <t>The vectors were derived from this document's text rather than generated from the
reference implementation, so that the two are capable of disagreeing. On first
execution they did: the reference implementation treated <tt>governance.expiresAt</tt>
as authoritative whenever present and never compared it to the interval implied
by <tt>ttlSeconds</tt>, so a sender could extend a short-lived object's lifetime
indefinitely by supplying an additional distant absolute expiry. Because the
governance block is covered by the signature, the resulting object was valid
under every other check. This is the origin of the requirement in
<xref target="governance"/> that the earlier instant govern, and it is offered as a
concrete instance of why vectors written from specification text are worth the
effort of producing.</t>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This work builds directly on the MLS protocol <xref target="RFC9420"/> and on the A2A
protocol <xref target="A2A"/>. The author thanks the authors and contributors of both.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V963YbR5Lm/3yKXPmHSQuAJEq+kW7P0JRa1rRkqUXJ3j5z
5hgFVAIsq1CFriqQQkvqZ9ln2Sfb+CIiL1UAZLVnzln2RSRQldfIuH4ROR6P
TVd0pTu1tx5V+birx/SPfVTNm+26K+rKZvTni02zrls3/qHe0F+P62vXVFk1
d3ZRN/Z86aoOL/Iv9plr22xZVMtbJpvNGndNLV/U1aLI6dsiK+3OY3k9r7IV
jSBvskU3nl9l61VWjbOTbLwq2/HdEzPPOresm+2pdW/Xpt3MVkXb0uBebdf0
WlHlbu0qtG9MsW5Obdds2u7k7t1v6d2scdmpvXTzTVN0W3NTN2+WTb1Zn9on
8T17Gdo0b9yWHspPjR3bZ08v8U+GIeMXJ0tE/9CvfonwRZ51mV0VVUGtZP7D
85NzY9qOVvDXrKwrGurWtaZdZU336983defaU1vVZl2c2v/s6vnItnXTNW7R
0m/bFX75L2OyTXdVNxiNsfRTVPTS04l9OLEXslD8sSzg080bZx9mVeHK3rd1
s6QP/8EDO7V/vSnelvy5W2VFeWpLem2iy/7vf8e3k3m9MqaqmxW9c+2od/vy
zxcn9+59q79+c+/rB/rrtw9O7vpP794/8b+efOmfffDVg2/CaydfndImVYtB
019TK/6Zr7/5Er/S6p3yKD19MuGcCPkc0bfH9kVT07rVpb1cu3mxKOY8w5H9
2TXYSntvcveWNJE1S9ed2quuW7end+6Attb68oRW5w4/FZaaf8ZYNnR7co6O
fnNz6vZpUW3e2j/jHHBfx9I+/UEjPLl78hX9+fDJw788+lt/7K+unM2L/JSI
i0ifusn3D+zm/nw8ny8ny6K72swmRX2H3hqv+I0xvfyxgf5y/8JeNE7PWWsv
6tVqUxHR28cgeHT47OJFf1zP6hy0Ulede9uF9dw/thWencujYfFohB9bu6q7
aup1MUeLjx++eNnv/aVbbkpeR3v06PUxLeC9r+589fW39uixq1xDzOIhzhWG
RauPx+Ibx/sH6TbNuHRvJ/Rvvc7onzuuLO40bnnHN36n/u0jI36E91xW2dcV
ddLf3XtfGTMeEzuYtV2TzYnbBN7HHML6VWnpmM6J77TE38qtnWdNs7Ur5niu
tTPX3ThXYQB1Va/qTUsHf9HdEKcy3E5rqXF61dKEZ+4qKxe2XhD5tPThHL3Q
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
n7yUvpaVsLLABB1R9VcxbyStuiqv+3s9km/6bXH1cuYngpx9DsYupR8Qu2iL
t4JY4oqPc8cZM9t+lAFgAC4VFlDsuFKAYU73OULWtrrEig/A/TTI29JOBznr
28Sk9mW84E9E8gBrmkIVPhM+q0StlpdgEUUSOBNzMZAlz8RIqDTJlVHMU9H2
jKM+MJxPBtRIKQ3ZQq/bsgeHM3eV9ScKLNNNsc915Hma2CpqU8TeDEmJfun8
Oopt17sPwJdOZcp5GSjn3WdKNbCh9rMODQrtFn9TJxA04UIUhzXSg+tNW26N
SP8UgsKmeLLijKPt+b4kEmLDq9Oj8PSI9OrjKdd0k+w9Wo7SZa0GEyUzy7vt
fIKWeM8Y3yJteo6RlCJgFuskT1LSu3z3xjfDUGhXJbF1Ac0VNZNovAkh0gRo
T0oQ+Ixj4yHnXBWXKf6BldLBSBmGQE+Qmf1qsMCtIYfDClJG6H0//8fKRECk
gJkDrm+kd0+MQ1Aw2TGlrVq9mLJQmodixJvGPiAtCaTITbmLh7PxWrkxgw62
FPhMaxjz/Rl1/YaFjjDh8DkrtxWK6mVifWlpbuj/tAacUUXcr6wLaBVKyJ6N
PUrYGInlPSzsMGHD9gPBif2QFBbX+8NGXNFeVCXP9sy6l3eXiE5/TALX0eMR
GfokZHiqBl1okJg60VAruvN5sbumV6KZAfDiUxP7qA8dvOm5EAMZUsOqbM65
wAEXLQ5shnttorEUXzUeJV55/QPcV9KaPHghcUuqxb97xH1QKQsZxZJb6JdV
GLRAgdF5FX2rCcpZgDTMLAqw9y2uShAgv2Sjttm1i+Gm9JoULW0d7kowwQkV
DrlnlZ5H/uDrafdAAip91aUh6+tTMVj8EPWG+sJyL9pyQzqx4twMMwrJ/xRT
T0p590LXsUSsZmOk90qxt0rvKKyVkpJ+kkvcoqLAnbZ+xW60zkzEyoq3pJ+A
FbkaTJfxEknwDJPxjUo0GglWDCNO4eRE4UjH7tVU75MtxGQlpsgciar4y5s8
Ifl85/TJifnMX7UHxfucdrRSPpDcezFA7vLdNeFiR5//GW/Ziu5UJp5YOgYr
n9ywIUKA0RD922LMECkqudbXu9d8aC0R4mG96/xGpIrhFsIPH8w5FoWo5cuj
e8dHs+PoLw2w7XBVDxvEpNeLiAFRxZnoorVGHKld8KQGLiDpSmLNbwNIZnVm
eyOYJyNAnya9S/SMOWHveTccsR/oG/i0KgF362mPeO3JPvBC6qLZmVjiqfdi
WnKFEPD0hXg1BH74mpffu+TFRAEx6t/C0+plM4Xeq9M4kUexAo0vYo9cEi56
Zw5dbzG4DOGAVi6lw8VBkJSWD06jax4MYl3xakDnvTaVz9XAlpeFOEaD62k3
QbxmsDDzTZPlSBJjoaG6SADV+PUKrg7NmJBFLsnQwQVQ7Kv1jHmIF4R2komt
BPLzHrZCrjHk6gFFkHVx9CLTTO5WshLY3XSDiJcAdOk9tJrzp15zlDnEDV56
rJH1pzcysBT4BfPiFexd3wqfAAMvjPlFnPJDUzPgdfdfwhXla1LUl8RbEK3p
5VKjtChNc8OxDKQ5zAXqQfTRsSOZ3i1aFyICpp8ikAb791zygh3peZN6GRs+
P0OUkZ0iJKGsz/ACrp2btDgopdCPWDqwYJcVUnh5XRkZtudqsFiKS07RnpyZ
w+WdeB0G9b68OEUhNq6c5EsgqhWVjDNWAYt1olqHMFooesDEQkfjIY7OT3Xn
qSTWiYg3gQQv6s4FknrS94DYrrg8/u5FJCzUknpR3j8R8Q4Sf0uvK8E+DC9k
ksixFtR41T/MAWgUbl3p34XK6ARqN9Rc80xJ1UM5ysnVYEi5gz3sTzmbGA27
Kg1eAbWJrsTIOZBirboFxwjF91sJM0puV3PXPmYlL05MWslUCfUGQN5wHw19
K5IoYbLRDdu779SvP1YZmUi2bvrnWlKaWS0kjaUNt8o1bniTyTnXzFMyyJKE
ObkbVGInSSAvk5KpvjBixq/H61pMvK7F3zgZpG9648ieW1iSO1h2ChJcRL7S
S42Nad8xL8tGJqThCOjkqII5KLHHHmmNhSEeTxS1w5FGmuHPlQtEAT2UB7ep
QjLW6oATJaar0YK/ceyf4MIqy3Kb4ovZOGF47lvwZCYyLp1HshpH7SZ4HP1N
jyYcDbkByMlw5jERJr0KqEOs45T5HXhB5S/4KzPci7yARBS1TnUQ6NFeFZkT
n5dUmkpu8ek0Gp8yf2ogY/Cj+tFlaFWd3GoT/LXUBFwXNP2s3LZFcpnL8Cqe
PG9NxYftUaxz7NkP6h37d6VyPKgddeISPSteNCMYm8SXvzeW8VFfvSxqBSqo
F2Ofun5N0yP7JTpVONIVIg6+bNcgpT5NHk8TwRnx5y/ak6Z9C/FetT21RZi/
9AMlYuRpvdxwG6ZSptSTlBdCBf5hbqi4VUUhTG4ig6aUO3k31XhYJUMgRiI2
XPLPNewDTdz2nBgpL/vLZngw3uySr2IEKVYIZSS2YENDTEkPiESShEGy1rKp
tEs2M4g3sv715Pyn813di1MGBhkLO9erbeT6aiDVkpyDUXJZrVQycorH8mWh
WPMIyRmVr8zCyAtBf9lXn5IHwgMw8t6YAXOcqzHhYleDS27yayioWiFTVAjm
yg4gei241KtoFIsOajJZHHHHoP2gCe4MQD0ikkeYIx9P9TjSklstSfaC8/np
Q1Qj03m+D860PUXJUozeICzD4DyUB/s0hDeeHJp1O130MJ6H2955bIjz3d9y
H1f48eZ3n01Ag3285HuRkiWpLP09RVS0ZA7PPmgojBt2N+dacmYzk7B+F+pq
9r2bP7N/7aUW5hoehEBIGp0KhCSXDfIRixWnK64Rn5udXMF+b+0XX0w0BUjg
g6R0nupAjqR+zvGI6AgV1kdpSTv6UD16mld6xBXzUU2QXnjpD9OIr+/etPZo
ytKpZYQD1zUiRpNV1OmU3djTGiXmaE2nx+L5u+CMf76DEGAihgS+TJebOWMO
a+QU4TWUKH7pcOUM899edz6LQHswmCppEGcYnB6383kwNZOhWX0SxQL5EqqT
r7ha4IvYeHjEO3J5b6ExQ0bXXAcO8kA7z31Wz8kDSwZsd9XChVQitMF1FVDx
4Nrp7V9gMsm2JjvuVfjUl9u/WcseFcfCzVvF3niXxoi+ou88vD4DC2IYalTb
eMj0FD3Wv5yQXU2wcTQIkJZcFPgmVEuaGKyr1YYT9oNp9xbpgCju1nGiJDXl
bygymsefSkJvbdk0gqAWMMoseGWZtjEYNKWUpzO9C6v1RLnE9Gm97ZrUJw+e
mVgD0IS1ac/4SjskcaWV0MLSqY4SMD8++VIcYWquGIl5SAWsgZSJU/B+zSNo
H5z/xkFq4lQ7dfr7aaGx+7HvHlbFcVK40Bfm8lmoaPmLN6RZfwGy2sG2X2oB
LbWNzFSulj/Vym44xk1dr0556dadr1HGn7ESwwrcVKqIhyz3YWUMRiXp/ckM
4fKXHHA1lVI4m4dPnkmUT7Zv0NTYw22kNvHaSz/FK7Wi3/tIBJMPK89+Wlz1
ebGdioWtzkU20jUgnWBedWx+WDip+lHCeCLo88jHychIpo/LDejxmIW0MNv3
ymQHhUOPSLtaZc32GA/0Ge57z1oHcrwnz2ViKJAOmSZ/oiCuHGotf4evOV3P
pqOcJFW7N10tYDd+VquI9k7dhFo9kDsv470jHPZH9PW+t0jpSPWs9wb7wqNK
IxdQvBdp9lITN4xUP7ELUlPbTx3TheJEPjIsabY3rAvtSi/FC4FVXqecF2rP
wOI9jwXxEV752wGoIoztk4etTR4eNhyxWTsYNukuxDDEmtQHZA4y4k/r+6W+
+LG+hSekfV+Ke16/Umdg2MRP7VleHvZszmO2TaLmjUPBpsD6j5IirB4FZl8/
gR9zJhUvG9X3wer9A3LLjGuPmVcdYDw9eDhiNKhsADnSplYKNIHo5hCGllxf
mYbHIk8XO6ovNIQB7Ma8fNU7COPcH5bedeIMESSNZhQTw77+9sGJhxrWRCK+
ZuNAUGlKcIwCn69Je3T2KdnkFc3mZHLXZp0JhTSWRPCb2YR06Tt/xY7egSRT
ScGYX7VLREVeAVqkpQUVMpoa3YmfOo1ZjjupoxkucL+pe1FgH/lqudCsgabK
mOiduFPiOhwdqkY76vnDOT4kV8Sn0Lb0nnK5rzrxtsZgKnDLh+524Ht82dvm
jWvwjd07gdAGe39QG45zQbV6lpbcElRqeqlCuLjmGuY0kM5dOyYrCMC4spg1
HIOI408cJgevpB/ts5eAo4bFpAXh4Hnbk6aXgESlepz/c5TOBioj7pSO5a08
uPx3iyhmya26CbA5mSJfGR/VqFB7xmMBk2wf1j8ZVMajHzEWTtwTOLZoSfML
W5+hFiDmAS6OdtlhygUzeJfWDKs/hC7HXH1uwbyXW8C6zU7tJT7TuwWStFu+
GrQRCoSzQg5PcBNeuaQ4SC8nbJDQJSnrVuOi+nqW1Ic7TfD3fMe04BiUHvhs
1H2IPrUWr2uXFJB0BL/TAPrwr3NKQNw3Pavc5h4MappM4MvzcNJHTL81NjjD
k5QsjUX306U0TSoqjL1EK3+WcRF9OM2htuUrCaBuY0W4eEUyA+IFMwVXv/fc
6dySa9sxZAafxgSZJFclwOU1N0biC/3sGD9bRmy0ipvLsaj7IKWz7T7zKdpH
o4Pc7/n+sos8ijDekOKjNMFVD+sYQ6HBRrTtFwnQP+sB/X0hrY84m6mlox0O
cnyaUFK4IB1LC0lifyDB7etrgUqOptBfHha5fKEODTvlIlJwLzXr+TSJ1lRi
3CG+o0119RtXcUs9Rf3Uf8/60XdqyHw/+Y4I4Pvpsb+GWOFjCC8CnUXtBHpV
0s6I67GrM9xuJLgbyTEV6YscWqRS8i3PQbkNt8QIuOQm8oSYDRs9qSJMiiQD
aU8IFxENf+FOqIF4IKrLa/LvrBne8Tx9Sgq0/wyuPBV801RuDSqRZbnu+zHI
ZQdfnd4MwTJyKo883tD+cx2knTGM2B+ZMzPkinBJQh2qvLh4s7ZFnd4WHXsk
9I6jP0DXubJ9Ulg55dHghXyRztNL0L8HOYerx5KlPpqqVJ0qsAyZqMxKGQsN
ChEG9jDrMtGFjt6F+kXPyvbSP2w/HE950X6OgYUkKgHNOoRB+CNBUu0EQ+Sc
BfAFjthUGzlvS+fWWjIA10coZHcQC0HRnZQt2xuAZM6SUIYvxYIwy9gHLgDj
0jCJoMHUTS/xV8VnCnxL3BB89Z5btfaGM+p69ZDQl3vrGsQt4cZDSRthysOY
2sgCVEhfCZQAZW/WpC9g3MGnAElQ7NwLqbW0kJgBZI749gJKwsNAhcC9z0Ng
M1wkchDZA5cdAJ/U80It0wrBPwVz7Vqq2SFs7eFjPq2S3lD4E5lEa38ZeeKp
9jJsf5kwRbP6hzW3Oog4sX6SOsNSfXDM1Qetj8CG2xoQqkprDdZNH62FFrhI
AU1qw66cBDAvqBL4IDGRai6FgSGFklhmNizl6hEMosD5scAE0LSqPOLf2VCR
0rFpHF4EgqASroBdZYrAQFRtQETPSH0xxkENN40RSAKe9cUafVqWKkW9wpog
MQ4v5dG15HcpuU2wkjPWr1j6wSZp+cCSanbyoHplHWtUxlz6frFmiapqXFP/
4Ir4sCiRwerRHIzX5/DenPHfVmIB6nbKUUxuPL/K1qusGpNMhekyvnvPmLGw
cp+xvT+sAusbdXPGHJ20jJdRByEi7XCfs8eRNVF9RUMvfNp+P6AyGoQj7lBT
O4GGGL2Q5VqwZEg8GuqKG7PDMGA6WbtInHqjHc/ZaMdpNdrxB6EEy9BPc+z9
5N70UaRK6v4/Uw94dIt7R6ztub+D/3l+VQNASDtznoP7JlEUqX5VeWxuojXI
bU17Iz2fTA13QQ0XpKYJr941CvfWGj2NwispvCkFMGmKWgLT/sESmL2KlRC6
j5+PQzeh47SEp4eYJHZMap2Gyo/PqTFUBeRYeVJWVOuJjoFO82xJoypwVAYj
jwbC0+zHE/wmikfM/oEKkbslQEKFSGpvGN7crQ75+Pltj2uRIpGy3UQFYzJL
oFfxPYE4mj8rc0GuvXAWY55luBDXjZETJyBgPOnZUKiI05deI4E18QVAp6pS
mx38JHMMudrEe21g+EnCkrK/ojl0ZQqpKemVLxooy2PpLLn0VOoEFmXPYD0z
mhvom0ja4hSUHZgfVIdNJxmS/t6TiLEnA/eMOS403NAqz+RMLfBEkZYu9lWs
D0EusTv71xUz2FLEZgyTaoKUXv2x78Jhw9UkWQCKG4hEh98+FpXtHjGz3wfU
K4YFjWC0C1YFLexxCSrMQuK2p3LeTZokfqC6Zahn2a/hmFa5VIfMmcnSQktS
FT806UVvLOV4eCUPlkvye8nd+AzJqh4MXbEzXoWcQENuXVhzSYBIMyH7S+/v
IxaUYeczkm7qnZhfAXWH9Vkk6agK02rtI6b5gQ6j6+VreRnpQ3ICb1xZSpWf
XDwRUmjI3w83VD/Fr833yCgnaFKPF3KFP+687lXM1bW5M53sKerB/n/NMeM0
FL79sh7ghpTlqy4pyKWQ9UBHl/2qHLSAF1V3Q80XvzVsnQyyuZI+aNqs6aS6
8W7dcHOIcydI6SuhT6kaFkoyeNpEMXz7vJKNJE5FepzaIlzwJz/9uIDgxFfX
u+ZqEm8OhM7Zq47MRiAWpV9u1Une0WotNbpC/TymJ1wEg15pbaFhpzcV8iwz
72Scs3rO4o6rX1G33bjk9fUX0YXUU1PIPWlFpzdvyd0xmi6W1IFDxhbbWP0L
FSf2h6T2UlLMcVbW8zeSTSCWwWxwHZKv6+pvWfHZiJkmJhuhVaEcvaEdbodo
VnaxYpAG3vtGgelnqUcy8Nc26mWNWoMyPaiJxZqZoF0HQ5JTmLeRhLUgLFNj
324VVHvDNrIA4gBAqQUrIOdGr2Eg/RpiuXT5Ui7qMO9O5SYzl//pFitEt3yW
GLteZ5sCEe2Qe6qGjK9LwVGDJJdCivNoWCCtsu9LddjEqYBj9qZN0ICiGzDy
AKB2tYYgAibm/wEMK6bB+KoAAA==

-->

</rfc>
