<?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.4.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-morrison-mcp-dns-discovery-07" category="info" submissionType="independent" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="MCP DNS Discovery">Discovery of Model Context Protocol Servers via DNS TXT Records</title>
    <seriesInfo name="Internet-Draft" value="draft-morrison-mcp-dns-discovery-07"/>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
      <address>
        <email>blake@truealter.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="30"/>
    <abstract>
      

<t>This document defines a DNS-based mechanism for discovering Model
Context Protocol (MCP) servers, the identity of the organisations
that operate them, and a cryptographic identity envelope bound to an
individual Sovereign-tier <tt>~handle</tt> published under the same zone.</t>
      <t>Three TXT records are defined.  <tt>_mcp.&lt;domain&gt;</tt> advertises an MCP
server's endpoint URL, agent protocol family, transport binding,
cryptographic identity, and capability profile.
<tt>_org-alter.&lt;domain&gt;</tt> advertises the operator's canonical
organisational identity, including its legal entity, registry
identifier, regions of operation, and any regulatory framework under
which it must refuse external automated access.  <tt>_alter.&lt;domain&gt;</tt>
publishes an Ed25519-signed envelope binding a <tt>~handle</tt> to a public
key, an IdentityLog root reference, and a revocation commitment.
DNSSEC validation is <bcp14>REQUIRED</bcp14> for the envelope record, and a DANE
TLSA pin on the MCP endpoint is <bcp14>REQUIRED</bcp14> where resolving an envelope
and opening an MCP session are one recognition transaction.</t>
      <t>The mechanism complements HTTPS-based discovery, and follows the
precedent set by DKIM, SPF, DMARC, and MTA-STS.  Provisional
registration of a companion <tt>alter:</tt> URI scheme is requested of
IANA, and is not yet granted.</t>
    </abstract>
  </front>
  <middle>
    

<section anchor="introduction">
      <name>Introduction</name>
      <t>Model Context Protocol (MCP) <xref target="MCP"/> is an open protocol for
structured interaction between AI agents and tool-providing servers.
A complete agent-to-organisation-to-individual interaction chain has
three distinct discovery requirements:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Service discovery.</strong>  Where is the MCP server endpoint?  What
transport does it speak?  What cryptographic key authenticates
it?  This is the question v01 of this document answers via the
<tt>_mcp.&lt;domain&gt;</tt> record.</t>
        </li>
        <li>
          <t><strong>Organisational identity bootstrap.</strong>  Who is the organisation
operating the server?  What is its legal entity?  Where is it
registered?  Under what regulatory frameworks does it operate,
and which automated access pathways must it refuse to participate
in?  This is the question v02 answers via the
<tt>_org-alter.&lt;domain&gt;</tt> record.</t>
        </li>
        <li>
          <t><strong>Individual identity recognition.</strong>  Who is the Sovereign-tier
person bound to a <tt>~handle</tt> hosted under the domain?  What public
key signs their statements?  What append-only log anchors the
lifecycle of their identity?  How may their envelope be revoked?
This is the question v03 introduces via the <tt>_alter.&lt;domain&gt;</tt>
record.</t>
        </li>
      </ol>
      <t>The three questions are distinct.  An MCP client may need to
discover an endpoint without caring about the operator's identity
or any individual handle.  An onboarding wizard installing an
org-alter instance may need to read the operator's identity without
caring (yet) about the MCP endpoint.  A recognition verifier
(resolving an <tt>alter:~alice</tt> URI) needs the individual envelope
without necessarily invoking an MCP session.  Conflating any two of
these into a single TXT record would force every consumer to parse
fields it does not need and would crowd the 255-octet
character-string limit.  Splitting them across three
underscore-prefixed labels mirrors the pattern established by DKIM
<xref target="RFC6376"/> (<tt>_domainkey._domain</tt>) and DMARC <xref target="RFC9989"/>
(<tt>_dmarc._domain</tt>), where each record serves a single semantic
purpose.  SPF <xref target="RFC7208"/> and MTA-STS <xref target="RFC8461"/> set the same
precedent for carrying policy in a TXT record under a reserved
label.</t>
      <t>This revision is fully backward-compatible with v01 and v02.
Implementations that consume only the <tt>_mcp.&lt;domain&gt;</tt> record
continue to work unchanged.  Implementations that wish to bootstrap
an org-alter identity may additionally query <tt>_org-alter.&lt;domain&gt;</tt>.
Implementations that wish to recognise an individual <tt>~handle</tt> may
additionally query <tt>_alter.&lt;domain&gt;</tt>.</t>
      <t>This document stands alone.  Earlier revisions deferred the
envelope schema, the JSON Canonicalisation Scheme (JCS, <xref target="RFC8785"/>)
serialisation, and the verification algorithm to a companion
specification a reader could not fetch, which made this document
unimplementable by anyone outside its author's organisation.  They
also incorporated the <tt>_mcp</tt> and <tt>_org-alter</tt> record formats and
procedures by reference to revisions 01 and 02, by section numbers
that named the wrong sections, so a reader who followed a pointer
arrived at the wrong place in the right document.  Both deferrals
are removed.</t>
      <t>All three record formats (<xref target="mcp-record"/>, <xref target="orgalter-record"/>,
<xref target="alter-record"/>), all three procedures (<xref target="mcp-discovery"/>,
<xref target="orgalter-bootstrap"/>, <xref target="recognition"/>), the signing input
(<xref target="signing-input"/>) and the caching rules (<xref target="caching"/>) are given
here in full.  An implementer needs no other document in this
series.  Revisions 01 and 02 are cited where this document records
what they said, and are cited informatively, because nothing here
depends on fetching them.</t>
      <t>The individual-identity layer is grounded, as the organisational
layer is, in the identity field framework of <xref target="MORRISON-IFT"/>.  A
<tt>~handle</tt> is not a reserved alphanumeric slot but a durable
recognition attractor in the identity field.  A DNS record provides
a discrete checkpoint into that field: the envelope published at
<tt>_alter.&lt;zone&gt;</tt> is the handle-holder's own canonical declaration,
signed by their Ed25519 key and consumable by any resolver with
access to a DNSSEC-validating recursive resolver.  It also carries
a reference to an IdentityLog root, whose status as a trust anchor
<xref target="identitylog"/> sets out honestly and narrowly.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</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>
        

</section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>(Terminology from v01 and v02 is retained.  Terms added
since v02 are defined below.)</t>
      <dl>
        <dt>Envelope</dt>
        <dd>
          <t>An Ed25519-signed JSON object binding a <tt>~handle</tt> to a public
key, an IdentityLog root reference, an inception timestamp, a
revocation hash commitment, a signature algorithm tag, a detached
signature, and a caveats array.  The envelope is the unification
primitive of the ~alter identity architecture.  The TXT grammar
that carries the seven required envelope fields across DNS, and
the signing input over which they are verified, are specified in
<xref target="alter-record"/> of this document.</t>
        </dd>
        <dt>~handle</dt>
        <dd>
          <t>A Sovereign-tier identifier, leading tilde mandatory (e.g.
<tt>~alice</tt>).  Bot-tier handles carry a <tt>.bot</tt> suffix (e.g.
<tt>~example-bot.bot</tt>); Instrument-tier handles use the prefix
<tt>~cc-</tt> (e.g. <tt>~cc-example-model</tt>).</t>
        </dd>
        <dt>IdentityLog</dt>
        <dd>
          <t>An append-only transparency log recording envelope lifecycle
events (mint, caveat-add, revocation, key-rotation), whose root
the <tt>ilr=</tt> field of <xref target="alter-record"/> references.  Revision 04 of this
document described a Signed Tree Head emitted every minute and
cross-anchored to four named witness surfaces.  No such witness
federation exists, and the description is withdrawn.  The log's
cadence, its witness protocol, and the client profile for
checking it are NOT specified by this document and are not yet
specified anywhere a reader can fetch.  <xref target="identitylog"/> states what a
resolver may and may not conclude from <tt>ilr=</tt> in the meantime.</t>
        </dd>
        <dt>Organ</dt>
        <dd>
          <t>A broadcast surface for the envelope.  The three organs are: DNS
publication (this document), the local <tt>alter-runtime</tt> L3 daemon,
and a hardware-anchored device-organ quorum.  The term is
canonical; do not substitute "channel", "vector", or "emitter" at
the architectural level.</t>
        </dd>
        <dt>Recognition</dt>
        <dd>
          <t>The act of a resolver observing and verifying an envelope on
cryptographic merit.  Recognition is distinct from claim:
publishing a TXT record is not a claim of identity, it is an
observable assertion that the resolver may verify or reject.  No
field of this document carries a claim verb; resolvers recognise
envelopes, they do not honour publisher assertions about them.</t>
        </dd>
        <dt>DNSSEC Validation</dt>
        <dd>
          <t>The act of an authenticating DNS resolver verifying the RRSIG
chain from the root trust anchor to the TXT RRset, per <xref target="RFC4033"/>,
<xref target="RFC4034"/>, and <xref target="RFC4035"/>, and setting the AD bit on the response
delivered to the stub client.</t>
        </dd>
        <dt>DANE TLSA Pin</dt>
        <dd>
          <t>A DNS TLSA resource record <xref target="RFC6698"/> binding a server's leaf TLS
certificate (or the public key therein) to the zone that hosts
the envelope.  In this document, the pin applies to the MCP
endpoint at <tt>mcp.&lt;zone&gt;</tt>.</t>
        </dd>
        <dt><tt>alter:</tt> URI</dt>
        <dd>
          <t>A dispatch URI scheme for which provisional registration with IANA
is requested per <xref target="RFC7595"/>.  Handler guidance is given in <xref target="alter-uri"/> of this
document.</t>
        </dd>
      </dl>
      <t>(Terms from v02, Org-Identity Record, Identity Bootstrap,
Canonical Entity Identifier, Regulatory Refusal Marker, are
retained.)</t>
    </section>
    <section anchor="related-work">
      <name>Related Work</name>
      <t>Several drafts now publish agent discovery data in DNS, and they
arrived at overlapping vocabularies independently.</t>
      <t>Two of them are called AID and they are different documents.
<xref target="AGENT-AID"/> is "Agent Identity and Discovery", and <xref target="DNS-AID"/> is
"DNS for AI Discovery".  A reader who meets both should not have to
work that out from context, so this document names them apart.</t>
      <t><xref target="AGENT-AID"/> is the closest neighbour to the service-discovery record
of this document, and it came first.  It publishes a TXT record at
<tt>_agent.&lt;domain&gt;</tt> carrying a leading <tt>v=aid2</tt> version tag and
semicolon-delimited <tt>key=value</tt> pairs, which give the endpoint URI
(<tt>u</tt>), a protocol token (<tt>p</tt>), an authentication hint (<tt>a</tt>), and
optionally an Ed25519 public key for endpoint proof (<tt>k</tt>), carried as
an unpadded base64url JWK <tt>x</tt> value whose JWK thumbprint <xref target="RFC7638"/> is
the HTTP Message Signature <xref target="RFC9421"/> <tt>keyid</tt>.  The earlier <tt>v=aid1</tt> format, with its
<tt>i</tt> rotation identifier, stays valid through <xref target="AGENT-AID"/>'s
compatibility window.  The <tt>_mcp</tt> record of <xref target="mcp-record"/>
reaches the same three facts, an endpoint, a protocol, and a key, in
an underscore-prefixed TXT record with a leading version tag and
semicolon-delimited pairs, and both patterns are derived from DKIM
<xref target="RFC6376"/>.  Neither document copied the other.  Two drafts landed on
one shape because DKIM is where anyone publishing a key in TXT learns
to look, and <xref target="AGENT-AID"/> published that shape first, in March 2026.</t>
      <t>The two compose, and <xref target="AGENT-AID"/> says how.  Its abstract states that
AID is intentionally small and that after discovery, protocol-specific
mechanisms such as MCP handle communication and capability
negotiation, and its protocol registry already carries <tt>mcp</tt> as a
token.  This document is what that token defers to.  <xref target="AGENT-AID"/>
answers where an agent is and which protocol to speak to it; the <tt>_mcp</tt>
record answers what an MCP endpoint then requires, its transport, its
authentication, its capability scope and its key epoch; and the
<tt>_org-alter</tt> record of <xref target="orgalter-record"/> answers who is behind the
endpoint, with a legal entity, a registry identifier, operating regions
and regulatory refusal markers.  A deployment may publish both, and a
client that learns <tt>p=mcp</tt> from <tt>_agent.&lt;domain&gt;</tt> may query
<tt>_mcp.&lt;domain&gt;</tt> for the depth <xref target="AGENT-AID"/> deliberately leaves out.</t>
      <t>The keys bind different things, which is why publishing both is not a
duplication.  The <tt>k</tt> of <xref target="AGENT-AID"/> binds a key to an endpoint, and
proves control of the server that answers.  The <tt>_alter</tt> and
<tt>_org-alter</tt> records bind a key to a <tt>~handle</tt> or to a legal entity,
with a log root and a revocation commitment.  One proves the door is
the right door.  The other says who owns the building.</t>
      <t>Revision 01 of this document made the first of these points, in a
section titled "Relationship to Agent Identity and Discovery (AID)".
Revision 02 dropped the prose and kept the reference, and revisions 03
and 04 dropped both.  That was an error and revision 05 reversed it.</t>
      <t><xref target="DNS-AID"/> specifies discovery of AI agents through DNS.  It carries
connectivity in SVCB records with TXT as a fallback, an <tt>alpn</tt>
parameter that may hold the transport, an application-layer agent
protocol, or both (<tt>alpn=mcp,h2,h3</tt>), and an optional <tt>bap</tt>
parameter for the agent protocol alone, so that consumers can match
on the agent protocol without parsing transports out of <tt>alpn</tt>.  It
predates this document's treatment of the same question and is the
most substantial neighbouring work in the space.  It operates over
unicast DNS, as this document does, and the two are complementary
rather than competing.  DNS-AID addresses agent discovery generally,
while this document addresses one protocol family in depth and adds
the identity records that carry a signed envelope.</t>
      <t><xref target="MDNS-AGENT"/> specifies zero-configuration discovery over mDNS and
DNS-SD.  Its <tt>proto</tt> parameter names the agent protocol family, and
it defines exactly one value for it, <tt>proto=a2a</tt>, saying that A2A is
the only instantiation included in that document and leaving other
agent protocols to future work.  It defines no registry for the key.
The slot this document would occupy in that vocabulary, <tt>proto=mcp</tt>,
is therefore open rather than taken, and the two documents agree on
what the key MEANS, which is the part that matters for an implementer
reading both.  Its Section 7 puts discovery across links out of
scope while noting that existing wide-area and aggregated DNS-SD
facilities can provide it without changing the descriptor, so its
scope is not permanently local.  No record is ever shared with this
document's records regardless, because the owner names and service
types differ.</t>
      <t><xref target="MDNS-ARCHITECT"/> publishes registered agents through standard A,
SVCB, and SRV records at a registry, with a worked SVCB example that
puts the agent protocol and the transport side by side
(<tt>SVCB 0 mcp ... alpn=h2</tt>).  It is a third reading of the same axis,
and it strengthens the case for a shared distinction rather than
weakening it.</t>
      <t><xref target="SAIP"/> is a neighbour to the identity records of this document
rather than to its service-discovery record.  It publishes an
agent's Ed25519 public key in an underscore-prefixed TXT record at
<tt>_saip.&lt;domain&gt;</tt>, with a leading <tt>v=</tt> version tag, deriving its
pattern, as this document does, from DKIM <xref target="RFC6376"/> and SPF
<xref target="RFC7208"/>.  Its Section 10, "Trust and Attestation Discovery",
specifies that publication and the discovery of the key from it, so
the two documents are solving the same problem at the same layer:
how a verifier finds the key that a signature must check against.
The bindings differ.  The <tt>_saip</tt> record binds a key to a vendor's
declared network footprint, carrying authorised ASNs, authorised IP
prefixes, and an expiry.  The <tt>_alter</tt> record of <xref target="alter-record"/>
binds a key to a <tt>~handle</tt>, with a log root and a revocation
commitment.  A deployment that wanted both could publish both, and
nothing in either record's owner name or field set collides with the
other.</t>
      <t>These drafts would serve their readers better with one vocabulary.
An implementer reading two of them should not have to hold two
meanings for one key in their head.</t>
      <t>The neighbouring drafts keep the agent protocol and the transport
apart, each in its own way.  <xref target="MDNS-AGENT"/> defines <tt>proto</tt> as the
agent protocol identifier and never as a transport, and carries the
connection data in the SRV record instead.  <xref target="MDNS-ARCHITECT"/> defines
no <tt>proto</tt> key at all, and keeps the agent protocol distinct from
the wire protocol inside its SVCB record, the one in the <tt>mcp</tt>
position and the other in <tt>alpn</tt>.  Neither of them puts a transport
where the agent protocol belongs.  Revision 01 of this document did
exactly that, so revision 01 is the odd one out, and it is the
reading that has to give way.</t>
      <t>The alignment adopted here is therefore one parameter for the agent
protocol family and a second, separate parameter for the transport
or binding.  The transport parameter is named <tt>transport</tt> because
the Model Context Protocol specification already calls this axis by
that name, so an MCP implementer meets one term, not two.</t>
      <t>This document keeps a third axis separate again.  <tt>transport</tt> names
the binding (<tt>streamable-http</tt>, <tt>sse</tt>), and the wire protocol
underneath it (<tt>h2</tt>, <tt>h3</tt>) is left to the <tt>alpn</tt> service parameter
of SVCB and HTTPS records <xref target="RFC9460"/>, where DNS already carries it.
<xref target="DNS-AID"/> permits <tt>alpn</tt> to hold the transport, the agent protocol,
or both, and a reader of that draft and this one should know that
this document does not overload <tt>alpn</tt> in the same way.  Three axes
are made explicit here rather than two, and the third is not carried
in TXT at all.</t>
    </section>
    <section anchor="why-txt">
      <name>Why TXT rather than SVCB</name>
      <t>The neighbouring drafts carry their connectivity data in SVCB
records, with TXT as a fallback.  This document is the reverse, TXT
is the primary carrier.  The reason is the payload, not a rejection
of SVCB.</t>
      <t>An <tt>_mcp</tt> record's value is almost entirely opaque tokens the
resolver does not interpret, an endpoint URL, a public key, a
capability list, an attestation scope.  SVCB earns its place when a
resolver or a connection library acts on the parameters directly,
selecting a transport, following an <tt>alpn</tt>, choosing a port.  It
adds a registered SvcParamKey per field and a priority-ordered
target list.  For a record whose fields are consumed by an MCP
client after resolution, and not by the resolver, that machinery is
overhead without a matching benefit, and a TXT string is the
lighter carrier.</t>
      <t>Where a field IS resolver-actionable, this document defers to SVCB
rather than duplicating it.  The wire protocol lives in the SVCB or
HTTPS <tt>alpn</tt> parameter <xref target="RFC9460"/>, never in this TXT record, for
exactly that reason.  An operator who wants SVCB-based transport
selection publishes an HTTPS record for the endpoint host in the
ordinary way, and the two records coexist.</t>
    </section>
    <section anchor="mcp-record">
      <name>Record Format: <tt>_mcp.&lt;domain&gt;</tt> (Service Discovery)</name>
      <t>This section defines the Discovery Record introduced in v01.  It is
given here in full.  Revisions 03 and 04 incorporated it by
reference, by a section number that named the wrong section, and a
reader could not follow the pointer.</t>
      <section anchor="mcp-location">
        <name>DNS Location</name>
        <t>The Discovery Record is a DNS TXT resource record <xref target="RFC1035"/>
published at the label <tt>_mcp</tt> prepended to the Policy Domain:</t>
        <artwork><![CDATA[
_mcp.<policy-domain>. IN TXT "<record-value>"
]]></artwork>
        <t>The underscore prefix conforms to the conventions established in
<xref target="RFC8552"/> for globally scoped, underscore-prefixed DNS node names.</t>
        <t>Multiple TXT resource records <bcp14>MAY</bcp14> be published at the same DNS
name.  Where multiple records exist, each <bcp14>MUST</bcp14> independently conform
to the syntax defined in this section.  Clients <bcp14>MUST</bcp14> evaluate all
returned records and select among them using the <tt>priority</tt> field
as described below.</t>
      </section>
      <section anchor="mcp-abnf">
        <name>ABNF Grammar</name>
        <t>The record value is a semicolon-delimited sequence of key-value
pairs.  The following ABNF <xref target="RFC5234"/> defines the syntax:</t>
        <artwork><![CDATA[
mcp-record      = version *( ";" SP field )
version         = "v=mcp1"
field           = url-field / proto-field / transport-field /
                  pk-field / epoch-field / cap-field /
                  attest-field / scope-field / priority-field /
                  ttl-field / ext-field / unknown-field

url-field       = "url=" https-uri
proto-field     = "proto=" proto-value
transport-field = "transport=" transport-value
pk-field        = "pk=" algo ":" base64url
epoch-field     = "epoch=" 1*DIGIT
cap-field       = "cap=" cap-csv
attest-field    = "attest=" attest-csv
scope-field     = "scope=" scope-csv
priority-field  = "priority=" 1*DIGIT
ttl-field       = "ttl=" 1*DIGIT
ext-field       = "ext=" https-uri
unknown-field   = token "=" *qtext

https-uri       = "https://" *uri-char
uri-char        = %x21-3A / %x3C-7E
                ; printable ASCII, excluding ";" (%x3B) and SP.
                ; A URI carries no raw space, so admitting one here
                ; would let a url= value swallow the field after it.
qtext           = %x20-3A / %x3C-7E
                ; printable ASCII and SP, excluding ";" (%x3B),
                ; which delimits one field from the next.  A value
                ; that could contain ";" could swallow the delimiter.
algo            = "ed25519"
base64url       = 1*( ALPHA / DIGIT / "-" / "_" )
proto-value     = token
transport-value = token
cap-csv         = cap-token *( "," cap-token )
cap-token       = token
attest-csv      = attest-token *( "," attest-token )
attest-token    = token
scope-csv       = scope-token *( "," scope-token )
scope-token     = "tools" / "resources" / "prompts" /
                  "sampling" / "identity" / token
token           = 1*( ALPHA / DIGIT / "-" / "_" )
]]></artwork>
        <t><tt>unknown-field</tt> matches ONLY a field name this document does not
define.  ABNF has no way to say "any token except these", so the
exclusion is stated here, and it is normative.  Where a field name
IS defined above, the field <bcp14>MUST</bcp14> be parsed by that field's own rule.
A record in which a defined field's value does not satisfy its own
rule is MALFORMED, and a client <bcp14>MUST</bcp14> discard it, exactly as
<xref target="mcp-discovery"/> discards a record whose <tt>url</tt> is not a valid HTTPS
URI.  A client <bcp14>MUST NOT</bcp14> re-read such a field as an <tt>unknown-field</tt>.
Without this rule the alternation would swallow every defect it was
written to exclude: <tt>url=https://x.com priority=5</tt> would parse as an
unknown field named <tt>url</tt> rather than as the malformed <tt>url</tt> field
it is.</t>
        <t>The grammar admits any token in <tt>proto</tt> and in <tt>transport</tt>, and
that is deliberate.  Syntactic admissibility is not definition.
Revision 01 admitted any token in <tt>proto</tt> and records in the wild
carry transport values there, so a resolver <bcp14>MUST</bcp14> be able to PARSE
such a record before it can decide what to do with it, and the
reading rule of <xref target="reading-legacy"/> is what decides.  A grammar that
rejected those records at the parser would leave the reading rule
with nothing to read.</t>
        <t>The values this document DEFINES are enumerated in the field
definitions below, and they are few.  <tt>proto</tt> has exactly one
defined value, <tt>mcp</tt>.  <tt>transport</tt> has exactly three,
<tt>streamable-http</tt>, <tt>sse</tt>, and <tt>stdio-url</tt>.  Those two sets are
disjoint, so no value is defined for both fields.  A transport value
appearing in <tt>proto</tt> is RECOGNISED there, under <xref target="reading-legacy"/>,
and is not DEFINED there; the distinction is what makes the previous
sentence true.</t>
      </section>
      <section anchor="mcp-fields">
        <name>Field Definitions</name>
        <section anchor="mcp-field-v">
          <name>v (REQUIRED)</name>
          <t>Protocol version identifier.  <bcp14>MUST</bcp14> be the literal string <tt>mcp1</tt>.
<bcp14>MUST</bcp14> appear as the first field in the record.  Clients <bcp14>MUST</bcp14> reject
any record whose <tt>v</tt> field is absent, is not the first field, or
contains a value other than <tt>mcp1</tt>.</t>
          <t>This version gate enables future incompatible revisions of the
record format.  A future version <tt>mcp2</tt> would indicate breaking
changes to field semantics or discovery flow.</t>
        </section>
        <section anchor="mcp-field-url">
          <name>url (REQUIRED)</name>
          <t>The HTTPS URL of the MCP server endpoint.  <bcp14>MUST</bcp14> use the <tt>https</tt>
scheme.  <bcp14>MUST</bcp14> be a syntactically valid URI per RFC 3986.  This is
the entry point for MCP session establishment.</t>
          <t>Clients <bcp14>MUST NOT</bcp14> attempt to connect to URLs using schemes other
than <tt>https</tt>.  Servers <bcp14>MUST</bcp14> present a valid TLS certificate for
the hostname in the URL.</t>
        </section>
        <section anchor="mcp-field-proto">
          <name>proto (OPTIONAL)</name>
          <t>The agent protocol family the endpoint speaks.  Default value:
<tt>mcp</tt>.  For a record published at <tt>_mcp.&lt;domain&gt;</tt> the only value
defined by this document is <tt>mcp</tt>; the field is retained because
the same key, with the same meaning, is used by neighbouring
discovery drafts (see <xref target="related-work"/>) and a client that reads
several of them should not have to special-case this one.</t>
          <t><tt>proto</tt> does not name a transport.  It does not carry
<tt>streamable-http</tt>, <tt>sse</tt>, <tt>h2</tt>, <tt>h3</tt>, or any other binding.  The
transport is carried by the <tt>transport</tt> field below.  A record
published under revision 01 may still carry a transport value
here, and <xref target="reading-legacy"/> says exactly how to read one.</t>
          <t>The field is <bcp14>OPTIONAL</bcp14>, but not unconditionally.  A publisher that
emits a <tt>transport</tt> field <bcp14>MUST</bcp14> also emit <tt>proto=mcp</tt>, for the
interoperability reason given in <xref target="reading-legacy"/>.  Omitting
<tt>proto</tt> is permitted only where <tt>transport</tt> is also omitted.</t>
        </section>
        <section anchor="mcp-field-transport">
          <name>transport (OPTIONAL)</name>
          <t>The MCP transport binding used by the server.  Default value:
<tt>streamable-http</tt>.  Defined values:</t>
          <ul spacing="normal">
            <li>
              <t><tt>streamable-http</tt>, the HTTP-based streaming transport (default).</t>
            </li>
            <li>
              <t><tt>sse</tt>, the HTTP+SSE transport of MCP protocol version 2024-11-05,
retained for deployed servers.  The Model Context Protocol
specification marks this transport superseded by
<tt>streamable-http</tt>.  It is listed so an existing server stays
discoverable, not as a recommendation for new deployments.</t>
            </li>
            <li>
              <t><tt>stdio-url</tt>, a URL pointing to a signed launch descriptor for a
stdio-based server (descriptor format out of scope).  This is a
discovery convenience defined by this document, not one of the MCP
specification's own transport names.</t>
            </li>
          </ul>
          <t>The field is named <tt>transport</tt> because that is the term the Model
Context Protocol specification itself uses for this axis, so an
<tt>_mcp</tt> record and an MCP client configuration name the transport
the same way.</t>
          <t>Implementations <bcp14>SHOULD</bcp14> support at least <tt>streamable-http</tt>.
A client that meets a <tt>transport</tt> value it does not recognise <bcp14>MUST</bcp14>
skip the record and proceed to the next record by priority, or to
HTTPS fallback.</t>
          <t>The wire protocol beneath the transport (<tt>h2</tt>, <tt>h3</tt>, <tt>http/1.1</tt>)
is NOT carried in this record.  It is already expressible as the
<tt>alpn</tt> service parameter of an SVCB or HTTPS resource record
<xref target="RFC9460"/>, and duplicating it in TXT would create two sources of
truth for one fact.</t>
        </section>
        <section anchor="reading-legacy">
          <name>Reading a record published before this revision</name>
          <t>Revision 01 of this document defined <tt>proto</tt> as the transport, so
records in the wild carry <tt>proto=streamable-http</tt>, <tt>proto=sse</tt>, or
<tt>proto=stdio-url</tt>.  Revision 01 also admitted ANY token in that
field, and required a client that met a <tt>proto</tt> value it did not
recognise to SKIP the record.  Both of those behaviours are
preserved here.  Such records remain valid and <bcp14>MUST</bcp14> be read as
follows.</t>
          <t>A client reading an <tt>_mcp</tt> record determines two things, the
protocol family first and the transport second.  Taking them in the
other order is what makes an unrecognised value look harmless, so
the order is normative.</t>
          <t><strong>Step A, the protocol family.</strong>  The family is <tt>mcp</tt> where any one
of the following holds:</t>
          <ul spacing="normal">
            <li>
              <t><tt>proto</tt> is absent;</t>
            </li>
            <li>
              <t><tt>proto</tt> carries <tt>mcp</tt>;</t>
            </li>
            <li>
              <t><tt>proto</tt> carries one of the three values defined for <tt>transport</tt>
in <xref target="mcp-field-transport"/>.  This is the revision 01 form, in
which the transport was written into <tt>proto</tt>.</t>
            </li>
          </ul>
          <t>Where <tt>proto</tt> carries any other value, it names a protocol family
this document does not define.  The client <bcp14>MUST</bcp14> skip the record and
proceed to the next record by priority, or to HTTPS fallback.  It
<bcp14>MUST NOT</bcp14> treat the value as a transport, and it <bcp14>MUST NOT</bcp14> apply a
default transport to the record.  This holds whether or not a
<tt>transport</tt> field is also present: a record reading
<tt>transport=streamable-http; proto=websocket</tt> is skipped, because the
family is unknown, and the presence of a readable transport does not
make an unknown family speakable.</t>
          <t><strong>Step B, the transport.</strong>  A client reaches this step only where
Step A yielded the family <tt>mcp</tt>.</t>
          <ul spacing="normal">
            <li>
              <t>Where <tt>transport</tt> is present and carries one of the three values
defined in <xref target="mcp-field-transport"/>, that value is the transport,
and any transport value carried in <tt>proto</tt> <bcp14>MUST</bcp14> be ignored.</t>
            </li>
            <li>
              <t>Where <tt>transport</tt> is present and carries any other value, the
client <bcp14>MUST</bcp14> skip the record, and <bcp14>MUST</bcp14> proceed to the next record
by priority or to HTTPS fallback (<xref target="mcp-field-transport"/>).</t>
            </li>
            <li>
              <t>Where <tt>transport</tt> is absent and <tt>proto</tt> carries one of the three
defined transport values, that value is the transport.  This is
the revision 01 form.</t>
            </li>
            <li>
              <t>Where <tt>transport</tt> is absent and <tt>proto</tt> is absent or carries
<tt>mcp</tt>, the transport is <tt>streamable-http</tt>.</t>
            </li>
          </ul>
          <t>The skip in Step A is the rule that matters, and it is written out
because the obvious reading gets it wrong.  Revision 01 admitted any
token in <tt>proto</tt>, so <tt>proto=websocket</tt> was a syntactically legal
record, and every conformant revision 01 client SKIPPED it, because
revision 01 required a skip on an unrecognised <tt>proto</tt> value.  A
client that instead read an unrecognised <tt>proto</tt> value as a protocol
family, and then applied the default transport, would open a
<tt>streamable-http</tt> session against a server that never offered one.
That record was unusable under revision 01 and it stays unusable
here.  Preserving the skip is what keeps the two revisions
interoperable.  Widening the rule to absorb any unknown token would
do the opposite, because it would newly accept records that no
client could ever use.</t>
          <t>A publisher that emits a <tt>transport</tt> field <bcp14>MUST</bcp14> also emit
<tt>proto=mcp</tt>.  This is not decoration.  A revision 01 client does not
know the <tt>transport</tt> field, and its own forward-compatibility rule
tells it to IGNORE any field it does not know, so it reads only
<tt>proto</tt>.  A record carrying <tt>transport=streamable-http</tt> beside
<tt>proto=sse</tt> would therefore resolve to <tt>streamable-http</tt> under this
revision and to <tt>sse</tt> under revision 01, which is one record and two
transports.  Setting <tt>proto=mcp</tt> alongside <tt>transport</tt> removes the
divergence, because a revision 01 client then finds no transport it
recognises in <tt>proto</tt> and skips the record rather than reaching a
different endpoint state than a current client would.</t>
          <t>Publishers <bcp14>SHOULD</bcp14> move to the two-field form.  No flag day is
required, because the two forms are distinguishable by inspection,
and because no value is defined for both fields
(<xref target="mcp-abnf"/>).</t>
        </section>
        <section anchor="mcp-field-pk">
          <name>pk (OPTIONAL)</name>
          <t>Ed25519 public key for endpoint verification, encoded as
<tt>ed25519:&lt;base64url&gt;</tt> where <tt>&lt;base64url&gt;</tt> is the raw 32-byte
public key encoded per <xref target="RFC4648"/> Section 5, without padding.</t>
          <t>Where present, the <tt>pk</tt> field provides a cryptographic binding
between the DNS record and the MCP server.  Clients <bcp14>MUST</bcp14> verify
that the key matches at least one of the following:</t>
          <ol spacing="normal" type="1"><li>
              <t>A key in the server's TLS certificate SubjectPublicKeyInfo.</t>
            </li>
            <li>
              <t>The signing key used in HTTP Message Signatures <xref target="RFC9421"/> on
MCP responses.</t>
            </li>
            <li>
              <t>The key declared in the Server Card <xref target="SEP-1649"/> served by the
endpoint.</t>
            </li>
          </ol>
          <t>If verification fails, the client <bcp14>MUST</bcp14> treat the server as
untrusted and <bcp14>SHOULD NOT</bcp14> proceed with the MCP session.</t>
        </section>
        <section anchor="mcp-field-epoch">
          <name>epoch (OPTIONAL)</name>
          <t>A monotonic non-negative integer that increments on every key
rotation.  Default value: <tt>0</tt>.</t>
          <t>Signed claims or attestations issued by the MCP server carry a key
identifier (kid) of the form <tt>&lt;algo&gt;:&lt;pk&gt;#&lt;epoch&gt;</tt>.  Verifiers
resolve the Discovery Record, extract the current epoch, and apply
the following rules:</t>
          <ul spacing="normal">
            <li>
              <t>Claims with <tt>epoch == current</tt> are valid, subject to temporal
checks.</t>
            </li>
            <li>
              <t>Claims with <tt>epoch &lt; current</tt> are revoked unless the claim's
expiry timestamp predates the rotation event.</t>
            </li>
            <li>
              <t>Claims with <tt>epoch &gt; current</tt> <bcp14>MUST</bcp14> be rejected as either
forgeries or evidence of a stale verifier DNS cache.</t>
            </li>
          </ul>
          <t>The epoch field enables epoch-based revocation without external
Certificate Revocation Lists (CRLs) or Online Certificate Status
Protocol (OCSP) infrastructure.  Incrementing the epoch revokes
all outstanding claims issued under prior epochs, subject to the
grace period defined by each claim's expiry.</t>
          <t>The rules above compare a claim against the record.  They do not
compare the record against itself over time.  A publisher never
lowers the epoch, because the field is monotonic, so a record whose
epoch is lower than one a client has already observed is not a state
a conformant publisher produces.  <xref target="key-continuity"/> states what a
client does when it observes one, and what it does when the <tt>pk</tt>
changes.</t>
        </section>
        <section anchor="mcp-field-cap">
          <name>cap (OPTIONAL)</name>
          <t>Capability tier advertised by the server, expressed as a
comma-separated list of tokens.  This field provides a coarse hint
to clients about the functional scope of the server.</t>
          <t>No normative semantics are defined for specific capability values
in this document.  Protocol extensions <bcp14>MAY</bcp14> define capability tokens
and their semantics.  Clients that do not recognise a capability
token <bcp14>MUST</bcp14> ignore it.</t>
        </section>
        <section anchor="mcp-field-attest">
          <name>attest (OPTIONAL)</name>
          <t>A comma-separated list of attestation types that the MCP server
declares it is authorised to issue.  The value enumerates claim
types that downstream verifiers will accept from this issuer.</t>
          <t>Defined values, extensible:</t>
          <ul spacing="normal">
            <li>
              <t><tt>employ</tt>, current employment affiliation.</t>
            </li>
            <li>
              <t><tt>contract</tt>, contractual or freelance engagement.</t>
            </li>
            <li>
              <t><tt>alumnus</tt>, former affiliation.</t>
            </li>
            <li>
              <t><tt>director</tt>, board or directorial role.</t>
            </li>
            <li>
              <t><tt>member</tt>, generic membership (professional body, association).</t>
            </li>
            <li>
              <t><tt>contrib</tt>, verified contribution without formal affiliation.</t>
            </li>
          </ul>
          <t>Verifiers <bcp14>MUST</bcp14> reject any attestation claim whose type is not
present in the issuer's <tt>attest</tt> field.  This provides a
structural defence against capability creep: the domain's
published attestation scope is the upper bound on what its
claims can assert.</t>
          <t>Forward compatibility: unknown attestation values <bcp14>MUST</bcp14> be ignored,
not rejected.  A verifier encountering <tt>attest=employ,fellow</tt>
where <tt>fellow</tt> is undefined treats the record as
<tt>attest=employ</tt> and proceeds.</t>
        </section>
        <section anchor="mcp-field-scope">
          <name>scope (OPTIONAL)</name>
          <t>Comma-separated list of MCP primitives supported by the server.
Defined values:</t>
          <ul spacing="normal">
            <li>
              <t><tt>tools</tt>, the server exposes callable tools.</t>
            </li>
            <li>
              <t><tt>resources</tt>, the server exposes readable resources.</t>
            </li>
            <li>
              <t><tt>prompts</tt>, the server exposes prompt templates.</t>
            </li>
            <li>
              <t><tt>sampling</tt>, the server supports LLM sampling requests.</t>
            </li>
            <li>
              <t><tt>identity</tt>, the server supports identity resolution queries.</t>
            </li>
          </ul>
          <t>Unknown values <bcp14>MUST</bcp14> be ignored.  This field is advisory; the
authoritative capability set is declared during the MCP
<tt>initialize</tt> handshake.</t>
        </section>
        <section anchor="mcp-field-priority">
          <name>priority (OPTIONAL)</name>
          <t>A non-negative integer.  Default value: <tt>10</tt>.  Where multiple
Discovery Records exist at the same DNS name, clients <bcp14>MUST</bcp14> sort
records by <tt>priority</tt> in ascending order and attempt connection
to lower-valued records first.</t>
          <t>This field enables multi-server failover without external load
balancing.  If connection to the highest-priority server fails,
the client proceeds to the next record.</t>
        </section>
        <section anchor="mcp-field-ttl">
          <name>ttl (OPTIONAL)</name>
          <t>Advisory TTL in seconds for client-side caching of the parsed
Discovery Record metadata.  Clients <bcp14>MAY</bcp14> use this value to avoid
repeated DNS lookups when the DNS TTL is shorter than desired.
The DNS TTL itself remains authoritative for cache expiry of the
raw DNS response; the <tt>ttl</tt> field applies to post-parse metadata
caching only.</t>
        </section>
        <section anchor="mcp-field-ext">
          <name>ext (OPTIONAL)</name>
          <t>An HTTPS URL pointing to a protocol-extension document.  The
format and semantics of the extension document are defined by
the protocol extension, not by this specification.</t>
          <t>This field enables protocol-specific extensions (identity
protocols, payment protocols, agent-to-agent negotiation) to
attach additional metadata without consuming space in the DNS
TXT record.  The extension document <bcp14>MUST</bcp14> be served over HTTPS.
Clients that do not recognise or support the extension <bcp14>MUST</bcp14>
ignore this field.</t>
        </section>
      </section>
      <section anchor="mcp-forward-compat">
        <name>Forward Compatibility</name>
        <t>Implementations <bcp14>MUST</bcp14> ignore unknown fields.  A parser encountering
a field name that it does not recognise <bcp14>MUST</bcp14> skip that field and
continue parsing the remaining fields.  This rule ensures that
future extensions to the record format do not break existing
implementations.</t>
        <t>Ignoring an unknown FIELD is not the same act as skipping a record
on an unrecognised VALUE in a field this document defines.  The
first is required here; the second is required by
<xref target="mcp-field-transport"/> and <xref target="reading-legacy"/>.</t>
        <t>Breaking changes to the semantics of existing fields require a
version bump, for example <tt>v=mcp2</tt>.</t>
      </section>
      <section anchor="mcp-multistring">
        <name>Multi-String Concatenation</name>
        <t>DNS TXT resource records are limited to 255 bytes per
character-string <xref target="RFC1035"/>.  Where a Discovery Record exceeds 255
bytes, the record <bcp14>MUST</bcp14> be split across multiple character-strings
within a single TXT RDATA, which the DNS resolver concatenates
per <xref target="RFC7208"/> Section 3.3.</t>
        <t>Example of a multi-string record:</t>
        <artwork><![CDATA[
_mcp.example.com. IN TXT (
  "v=mcp1; url=https://mcp.example.com; "
  "pk=ed25519:LongBase64UrlEncodedPublicKeyValueHere; "
  "epoch=3; attest=employ,contract,alumnus; scope=tools,identity"
)
]]></artwork>
        <t>Parsers <bcp14>MUST</bcp14> concatenate all character-strings within a single TXT
RDATA before parsing the semicolon-delimited fields.  Parsers
<bcp14>MUST NOT</bcp14> treat each character-string as an independent record.</t>
      </section>
    </section>
    <section anchor="orgalter-record">
      <name>Record Format: <tt>_org-alter.&lt;domain&gt;</tt> (Identity Bootstrap)</name>
      <t>This section defines the Org-Identity Record introduced in v02.  It
is given here in full, for the same reason <xref target="mcp-record"/> is.</t>
      <section anchor="orgalter-location">
        <name>DNS Location</name>
        <t>The Org-Identity Record is a DNS TXT resource record <xref target="RFC1035"/>
published at the label <tt>_org-alter</tt> prepended to the Policy Domain:</t>
        <artwork><![CDATA[
_org-alter.<policy-domain>. IN TXT "<record-value>"
]]></artwork>
        <t>The underscore prefix conforms to the conventions established in
<xref target="RFC8552"/> for globally scoped, underscore-prefixed DNS node names.</t>
        <t>A domain <bcp14>MAY</bcp14> publish a <tt>_mcp.&lt;domain&gt;</tt> record without an
<tt>_org-alter.&lt;domain&gt;</tt> record (service-only deployment), or an
<tt>_org-alter.&lt;domain&gt;</tt> record without a <tt>_mcp.&lt;domain&gt;</tt> record
(identity-only deployment), or both (full deployment).  The
recommended pattern for any operator running an org-alter instance
is to publish both.</t>
        <t>Multiple TXT resource records <bcp14>MAY</bcp14> be published at the same DNS name
(e.g., for staged identity rotation).  Clients <bcp14>MUST</bcp14> evaluate all
returned records and select the one with the highest <tt>epoch</tt> field.</t>
      </section>
      <section anchor="orgalter-abnf">
        <name>ABNF Grammar</name>
        <t>The record value is a semicolon-delimited sequence of key-value
pairs.  The following ABNF <xref target="RFC5234"/> defines the syntax:</t>
        <artwork><![CDATA[
orgalter-record = version *( ";" SP field )
version       = "v=alter1"
field         = org-field / entity-field / entity-type-field /
                founded-field / regions-field / regulated-field /
                bootstrap-field / mcp-policy-field /
                epoch-field / pk-field / attest-field /
                ext-field / unknown-field

org-field        = "org=" text-value
entity-field     = "entity=" registry ":" text-value
entity-type-field = "entity-type=" text-value
founded-field    = "founded=" date-fullyear
regions-field    = "regions=" region-csv
regulated-field  = "regulated=" framework-csv
bootstrap-field  = "bootstrap=" https-uri
mcp-policy-field = "mcp-policy=" policy-token
epoch-field      = "epoch=" 1*DIGIT
pk-field         = "pk=" algo ":" base64url
attest-field     = "attest=" attest-csv
ext-field        = "ext=" https-uri
unknown-field    = token "=" *qtext

registry      = "abn" / "acn" / "ein" / "ch" / "cro" / "lei" / token
text-value    = 1*qtext
qtext         = %x20-3A / %x3C-7E
              ; printable ASCII and SP, excluding ";" (%x3B),
              ; which delimits fields.  A legal entity name carries
              ; spaces, so VCHAR alone cannot express one.
region-csv    = region-token *( "," region-token )
region-token  = 2ALPHA   ; ISO 3166-1 alpha-2
framework-csv = framework-token *( "," framework-token )
framework-token = "disp" / "itar" / "ear" / "hipaa" / "gdpr" /
                  "soc2" / "iso27001" / "iso42001" / "essential8" /
                  "aprs" / token
policy-token  = "open" / "refuse-automated" / "refuse-tenant" /
                "refuse-all" / token
date-fullyear = 4DIGIT [ "-" 2DIGIT [ "-" 2DIGIT ] ]
algo          = "ed25519"
base64url     = 1*( ALPHA / DIGIT / "-" / "_" )
https-uri     = "https://" *uri-char
uri-char      = %x21-3A / %x3C-7E
              ; printable ASCII, excluding ";" (%x3B) and SP.
              ; A URI carries no raw space.
token         = 1*( ALPHA / DIGIT / "-" / "_" )
]]></artwork>
        <t>The <tt>text-value</tt> rule corrects a defect inherited from revision 02,
which defined <tt>org</tt>, <tt>entity</tt> and <tt>entity-type</tt> over <tt>1*VCHAR</tt>.
VCHAR is <tt>%x21-7E</tt> and excludes the space, so that grammar could not
derive <tt>org=Alter Meridian Pty Ltd</tt> or <tt>entity-type=Pty Ltd</tt>, which
are the values revision 02's own examples published.  A legal entity
name carries spaces, so the rule now admits them, and excludes only
the semicolon that separates one field from the next.</t>
        <t>A URI does not carry a raw space, so <tt>bootstrap</tt> and <tt>ext</tt> are
defined over <tt>uri-char</tt> rather than <tt>text-value</tt>.  A character class
that is right for a name is not thereby right for a URI: admitting SP
in a URI value would let it run past its own end and consume the
field after it.</t>
        <t>As in <xref target="mcp-abnf"/>, <tt>unknown-field</tt> matches ONLY a field name this
document does not define.  Where a field name IS defined above, the
field <bcp14>MUST</bcp14> be parsed by that field's own rule, and a record in which
a defined field's value does not satisfy its rule is MALFORMED and
<bcp14>MUST</bcp14> be discarded rather than re-read as an unknown field.</t>
      </section>
      <section anchor="orgalter-fields">
        <name>Field Definitions</name>
        <section anchor="v-required">
          <name>v (REQUIRED)</name>
          <t>Protocol version identifier.  <bcp14>MUST</bcp14> be the literal string <tt>alter1</tt>.
<bcp14>MUST</bcp14> appear as the first field in the record.  Clients <bcp14>MUST</bcp14> reject
any record whose <tt>v</tt> field is absent, is not the first field, or
contains a value other than <tt>alter1</tt>.</t>
          <t>The version namespace is independent of the <tt>_mcp</tt> record's
<tt>v=mcp1</tt> namespace.  This allows the two record types to evolve
independently.</t>
        </section>
        <section anchor="org-required">
          <name>org (REQUIRED)</name>
          <t>The canonical legal name of the organisation operating the domain.
<bcp14>MUST</bcp14> be the registered legal entity name as it appears in the
operator's primary corporate registry, not a trading name or brand.
For trading names, see the optional <tt>entity-type</tt> field.</t>
          <t>Examples:</t>
          <artwork><![CDATA[
org=Alter Meridian Pty Ltd
org=Red Group Pty Ltd
org=International Business Machines Corporation
]]></artwork>
          <t>### entity (<bcp14>RECOMMENDED</bcp14>)</t>
          <t>A globally-disambiguating canonical entity identifier, prefixed by
its registry namespace.  Defined registries:</t>
          <ul spacing="normal">
            <li>
              <t><tt>abn:</tt> -- Australian Business Number (11 digits, no spaces).</t>
            </li>
            <li>
              <t><tt>acn:</tt> -- Australian Company Number (9 digits, no spaces).</t>
            </li>
            <li>
              <t><tt>ein:</tt> -- US Employer Identification Number (<tt>NN-NNNNNNN</tt>).</t>
            </li>
            <li>
              <t><tt>ch:</tt>  -- UK Companies House number (8 alphanumeric).</t>
            </li>
            <li>
              <t><tt>cro:</tt> -- Irish Companies Registration Office number.</t>
            </li>
            <li>
              <t><tt>lei:</tt> -- Legal Entity Identifier (20 alphanumeric per ISO 17442).</t>
            </li>
          </ul>
          <t>Additional registries <bcp14>MAY</bcp14> be defined; clients <bcp14>MUST</bcp14> treat unknown
registry namespaces as opaque identifiers.</t>
          <t>Example:</t>
          <artwork><![CDATA[
entity=abn:54696662049
]]></artwork>
          <t>The <tt>entity</tt> field is the primary anti-impersonation defence for the
identity layer: a domain claiming to be <tt>Alter Meridian Pty Ltd</tt>
without an ABN that resolves to that name in ABR Lookup is
detectable as a mismatch by any verifier with access to the public
registry.</t>
        </section>
        <section anchor="entity-type-optional">
          <name>entity-type (OPTIONAL)</name>
          <t>A short human-readable label for the entity's type, drawn from its
jurisdiction's vocabulary.  Examples: <tt>Pty Ltd</tt>, <tt>LLC</tt>, <tt>GmbH</tt>,
<tt>SAS</tt>, <tt>non-profit</tt>.  This field is advisory and is intended for
display to humans; it is not a structured taxonomy.</t>
        </section>
        <section anchor="founded-optional">
          <name>founded (OPTIONAL)</name>
          <t>The date the legal entity was founded or registered, as
<tt>YYYY</tt> or <tt>YYYY-MM</tt> or <tt>YYYY-MM-DD</tt> per ISO 8601.  This field is
advisory and is used by onboarding wizards and identity verifiers
to display "Founded N years ago" or to detect implausibly young
entities making strong claims.</t>
        </section>
        <section anchor="regions-optional">
          <name>regions (OPTIONAL)</name>
          <t>A comma-separated list of ISO 3166-1 alpha-2 country codes
indicating the operator's primary regions of operation.  This field
is advisory.  It is used by onboarding wizards to set sane defaults
for jurisdiction-specific behaviour (e.g., currency, locale, public
registry preference).</t>
          <t>Example:</t>
          <artwork><![CDATA[
regions=AU,NZ,SG
]]></artwork>
          <t>### regulated (<bcp14>OPTIONAL</bcp14> but STRUCTURALLY SIGNIFICANT)</t>
          <t>A comma-separated list of regulatory framework tokens under which the
operator is bound.  Defined values (extensible):</t>
          <ul spacing="normal">
            <li>
              <t><tt>disp</tt> -- Australian Defence Industry Security Program.</t>
            </li>
            <li>
              <t><tt>itar</tt> -- US International Traffic in Arms Regulations.</t>
            </li>
            <li>
              <t><tt>ear</tt> -- US Export Administration Regulations.</t>
            </li>
            <li>
              <t><tt>hipaa</tt> -- US Health Insurance Portability and Accountability Act.</t>
            </li>
            <li>
              <t><tt>gdpr</tt> -- EU General Data Protection Regulation.</t>
            </li>
            <li>
              <t><tt>soc2</tt> -- AICPA SOC 2 Type II.</t>
            </li>
            <li>
              <t><tt>iso27001</tt> -- ISO/IEC 27001 information security management.</t>
            </li>
            <li>
              <t><tt>iso42001</tt> -- ISO/IEC 42001 AI management systems.</t>
            </li>
            <li>
              <t><tt>essential8</tt> -- ASD Essential Eight (ML2 or higher).</t>
            </li>
            <li>
              <t><tt>aprs</tt> -- Australian Privacy Principles / Privacy Act.</t>
            </li>
          </ul>
          <t>The presence of any token in this field is a structural promise:
the operator declares that they are bound by the named framework and
that automated access pathways crossing the regulated boundary <bcp14>MUST</bcp14>
be refused.  Onboarding wizards reading this field <bcp14>MUST</bcp14> refuse to
attempt L5/L6 authenticated access to data stores covered by the
declared framework, regardless of whether credentials are available.</t>
          <t>This converts the DNS record into an out-of-band consent boundary:
a remote agent's tooling becomes structurally aware that integration
is forbidden before it ever attempts a connection.  An agent that
ignores this declaration and attempts integration anyway commits a
detectable, attributable violation.</t>
          <t>Forward compatibility: unknown framework tokens <bcp14>MUST</bcp14> be treated
conservatively (assume the strictest defensible refusal) rather than
ignored.</t>
        </section>
        <section anchor="bootstrap-optional">
          <name>bootstrap (OPTIONAL)</name>
          <t>An HTTPS URL pointing to a JSON document containing additional
identity bootstrap metadata: a directory of public roster members
(if the org chooses to publish one), an organisational logo URL, a
canonical public website URL, an <tt>attest</tt> profile beyond what fits
in DNS, and any operator-defined extensions.</t>
          <t>The bootstrap document <bcp14>MUST</bcp14> be served over HTTPS with a valid TLS
certificate for the Policy Domain.  The document format is
operator-defined; recommended schema is published as
<tt>https://truealter.com/.well-known/org-alter-bootstrap.schema.json</tt>
as a non-normative reference.</t>
        </section>
        <section anchor="mcp-policy-optional">
          <name>mcp-policy (OPTIONAL)</name>
          <t>A single token declaring how the operator's MCP endpoint relates to
external automated access:</t>
          <ul spacing="normal">
            <li>
              <t><tt>open</tt> -- The MCP endpoint accepts queries from any agent with
appropriate authentication.</t>
            </li>
            <li>
              <t><tt>refuse-automated</tt> -- The MCP endpoint exists for human-mediated
access only.  Automated agents <bcp14>SHOULD NOT</bcp14> initiate sessions.</t>
            </li>
            <li>
              <t><tt>refuse-tenant</tt> -- The MCP endpoint exists, but the operator runs
one or more tenants (e.g., an M365 tenant) into which automated
access is forbidden.  This is the typical declaration for an
org-alter instance run by an operator who has DISP-accredited or
ITAR-bound systems alongside their public meta-layer.</t>
            </li>
            <li>
              <t><tt>refuse-all</tt> -- The MCP endpoint exists for the operator's own
internal use only.  External agents <bcp14>MUST NOT</bcp14> attempt connection.</t>
            </li>
          </ul>
          <t>Default value, if absent: <tt>open</tt>.</t>
          <t>The <tt>mcp-policy</tt> field complements the <tt>regulated</tt> field.
<tt>regulated=disp; mcp-policy=refuse-tenant</tt> is the canonical
declaration for a defence contractor running an org-alter at the
unclassified meta-layer alongside a regulated tenant they will not
allow automated agents to enter.</t>
        </section>
        <section anchor="epoch-optional">
          <name>epoch (OPTIONAL)</name>
          <t>A monotonic non-negative integer that increments on every identity
rotation event (e.g., legal entity restructure, change of control,
move to a new jurisdiction).  Default value: <tt>0</tt>.  Semantics mirror
the <tt>epoch</tt> field of the <tt>_mcp</tt> record defined in v01.  A wizard that
has persisted this record's <tt>pk</tt> and <tt>epoch</tt> applies the rules of
<xref target="key-continuity"/> when it re-reads the record.</t>
        </section>
        <section anchor="pk-optional">
          <name>pk (OPTIONAL)</name>
          <t>Ed25519 public key for endpoint verification, encoded identically to
the v01 <tt>_mcp</tt> record's <tt>pk</tt> field.  When present, the same key
provides cryptographic binding for both endpoint discovery and
identity bootstrap.</t>
        </section>
        <section anchor="attest-optional">
          <name>attest (OPTIONAL)</name>
          <t>A comma-separated list of attestation types the operator declares it
is authorised to issue, identical in semantics to the v01 <tt>_mcp</tt>
record <tt>attest</tt> field.  Where both records publish an <tt>attest</tt> field,
the values <bcp14>MUST</bcp14> be consistent.  An onboarding wizard <bcp14>SHOULD</bcp14> use the
union of the two.</t>
        </section>
        <section anchor="ext-optional">
          <name>ext (OPTIONAL)</name>
          <t>An HTTPS URL pointing to a protocol-extension document, identical in
semantics to the v01 <tt>_mcp</tt> record <tt>ext</tt> field.  This field is
distinct from <tt>bootstrap</tt>: <tt>ext</tt> is for protocol-level extensions
to the discovery format itself; <tt>bootstrap</tt> is for operator-level
identity metadata.</t>
        </section>
      </section>
      <section anchor="orgalter-forward-compat">
        <name>Forward Compatibility</name>
        <t>Implementations <bcp14>MUST</bcp14> ignore unknown fields.  This rule, identical to
the v01 <tt>_mcp</tt> record specification, ensures that future
extensions to the <tt>_org-alter</tt> record format do not break existing
implementations.</t>
      </section>
    </section>
    <section anchor="alter-record">
      <name>Record Format: <tt>_alter.&lt;domain&gt;</tt> (Envelope Publication)</name>
      <t>This section defines the new Envelope Publication record introduced
in v03.  The record publishes the seven required fields of the
~alter identity envelope (binding a <tt>~handle</tt> to its public key,
IdentityLog root, inception timestamp, revocation commitment, and
detached signature, under a protocol version) at an
underscore-prefixed label under the handle's hosting zone.  The envelope
schema admits an optional <tt>caveats</tt> array which is never carried in
DNS; this document specifies no transport and no vocabulary for it,
so under this document the array is always empty and the signature
is computed over an empty array (<xref target="signing-input"/>).  The signature
algorithm is not a separate field.  It is derived from the <tt>pk=</tt>
prefix via the registry of <xref target="sigalg-registry"/>, and enters the signing
input under that derivation.</t>
      <section anchor="alter-location">
        <name>DNS Location</name>
        <t>The Envelope Record is a DNS TXT resource record <xref target="RFC1035"/>
published at the label <tt>_alter</tt> prepended to the hosting zone:</t>
        <artwork><![CDATA[
_alter.<zone>. IN TXT "<record-value>"
]]></artwork>
        <t>The underscore prefix conforms to the conventions established in
<xref target="RFC8552"/> for globally scoped, underscore-prefixed DNS node names.</t>
        <t>Publication of a per-individual envelope at this label is <strong><bcp14>NOT
RECOMMENDED</bcp14></strong>, for the reasons in <xref target="alter-applicability"/>.  That applies to
any number of handles.  Revision 04 additionally permitted a zone
to host more than one <tt>~handle</tt> by publishing multiple TXT RRs at
this one owner name, with resolvers disambiguating on the <tt>h=</tt>
field; that pattern is the enumeration exposure of <xref target="alter-applicability"/> in
its sharpest form, and a zone <bcp14>MUST NOT</bcp14> use it.</t>
        <t>A domain <bcp14>MAY</bcp14> publish any combination of <tt>_mcp.&lt;domain&gt;</tt>,
<tt>_org-alter.&lt;domain&gt;</tt>, and <tt>_alter.&lt;domain&gt;</tt> records independently
(service-only, identity-only, envelope-only, or any intersection).</t>
        <section anchor="alter-applicability">
          <name>Applicability of the Envelope Record</name>
          <t>Publication of a per-individual envelope in DNS is <strong><bcp14>NOT
RECOMMENDED</bcp14></strong> for new deployments.  Three properties of DNS are the
reason.</t>
          <t><strong>Enumeration.</strong>  Where a zone co-hosts several handles at one
owner name, a single query returns the entire set.  That is a
membership roll, published to the internet, retrievable by anyone,
and the individuals listed in it cannot each consent to the
disclosure of the others.  Even with one handle per zone, DNSSEC's
authenticated denial of existence permits zone walking unless
NSEC3 or a compact denial scheme is deployed, and this document
never required one.</t>
          <t><strong>Size.</strong>  A conformant envelope does not fit in a single 255-octet
character-string, and no conformant envelope is smaller than the
limit.  Co-hosting a handful of handles at one owner name exceeds
the 1232-octet fragmentation budget that current DNS operational
guidance assumes, and the RRset grows without bound in the number
of handles.  The resolution algorithm of <xref target="recognition"/> retrieves the
whole RRset and filters client-side, so the cost of resolving one
handle grows with the number of handles the zone hosts.</t>
          <t><strong>Erasure.</strong>  A DNS record, once published and cached, cannot be
recalled.  A mechanism that binds a natural person's identifier to
a key in public DNS offers that person no way to withdraw the
binding from the caches and passive collectors that have already
taken it.  Revocation, where this document specifies it at all,
marks a binding dead; it does not unpublish it.</t>
          <t>These are properties of this mechanism as specified.  The envelope
format itself, its signing input (<xref target="signing-input"/>), and the
verification procedure (<xref target="recognition"/>) are not implicated by them.</t>
        </section>
      </section>
      <section anchor="alter-abnf">
        <name>ABNF Grammar</name>
        <t>The record value is a semicolon-delimited sequence of key-value
pairs.  Two grammars are given, because a publisher and a resolver
are held to different rules.  <tt>alter-record</tt> is what a conformant
publisher <bcp14>MUST</bcp14> emit.  <tt>alter-accepted</tt> is what a conformant resolver
<bcp14>MUST</bcp14> accept.  Every <tt>alter-record</tt> is an <tt>alter-accepted</tt>; the
converse does not hold.  Revisions 03 and 04 gave the publisher
grammar alone, and separately required resolvers to accept records
that grammar cannot derive, which is a contradiction revision 05
removed.</t>
        <t>The following ABNF (per <xref target="RFC5234"/>) defines the syntax:</t>
        <artwork><![CDATA[
; Publisher emission.  A conformant publisher MUST emit this form.
alter-record   = version ";" SP handle-field
                 ";" SP pubkey-field
                 ";" SP ilr-field
                 ";" SP ts-field
                 ";" SP rev-field
                 ";" SP sig-field
                 *( ";" SP unknown-field )

; Resolver acceptance.  A conformant resolver MUST accept this form.
; The version field stays first.  The remaining six required fields
; may arrive in any order, each exactly once, interleaved with any
; number of unknown fields.
alter-accepted = version *( ";" SP accepted-field )
accepted-field = handle-field / pubkey-field / ilr-field
               / ts-field / rev-field / sig-field
               / unknown-field

version        = "v=alter1"
handle-field   = "h=" handle
pubkey-field   = "pk=" algo ":" base64url
ilr-field      = "ilr=" base64url     ; SHA-256 of IdentityLog root
ts-field       = "ts=" 1*DIGIT        ; inception_ts, Unix seconds
rev-field      = "rev=" base64url   ; SHA-256 of revocation pre-image
sig-field      = "sig=" base64url     ; Ed25519 detached signature
unknown-field  = token "=" *qtext

handle         = "~" 1*( ALPHA / DIGIT / "-" / "_" )
                 [ "." "bot" ]
               / "~cc-" 1*( ALPHA / DIGIT / "-" / "." )
algo           = "ed25519"
base64url      = 1*( ALPHA / DIGIT / "-" / "_" )
token          = 1*( ALPHA / DIGIT / "-" / "_" )
qtext          = %x20-3A / %x3C-7E
               ; printable ASCII and SP, excluding ";" (%x3B),
               ; which delimits one field from the next.
]]></artwork>
        <t>ABNF alone cannot express "each of these six exactly once, in any
order", so the cardinality rule is stated here and is normative.  A
resolver <bcp14>MUST</bcp14> reject any record in which a required field is absent,
or in which any field name appears more than once.</t>
        <t>ABNF cannot express the exclusion either.  As in <xref target="mcp-abnf"/>,
<tt>unknown-field</tt> matches ONLY a field name this document does not
define.  Where a field name IS defined above, the field <bcp14>MUST</bcp14> be
parsed by that field's own rule, and a record in which a defined
field's value does not satisfy its rule is MALFORMED and <bcp14>MUST</bcp14> be
rejected rather than re-read as an unknown field.</t>
        <t>The seven keys are <bcp14>REQUIRED</bcp14>.  Publishers <bcp14>MUST NOT</bcp14> omit or reorder
them, and <bcp14>MUST</bcp14> emit them in the order shown in <tt>alter-record</tt>.</t>
        <t>The <tt>v</tt> field is first for publisher and resolver alike.  A resolver
<bcp14>MUST</bcp14> reject a record whose <tt>v</tt> field is absent or is not the first
field (<xref target="field-v"/>), so the ordering freedom above extends to the
remaining six required fields and to unknown fields, and never to
<tt>v</tt>.  Ordering among those six carries no meaning, and a resolver
<bcp14>MUST NOT</bcp14> derive any from it.</t>
        <t>Resolvers <bcp14>MUST</bcp14> tolerate unknown fields wherever they appear, and
<bcp14>MUST</bcp14> ignore them, per the forward-compatibility rule of
<xref target="forward-compat"/>.</t>
        <t>Field order on the wire has no part in signature computation.  The
signed bytes are the JCS serialisation specified in
<xref target="signing-input"/>, which sorts member names in code-point order and
is therefore blind to the order the TXT record used.</t>
      </section>
      <section anchor="alter-fields">
        <name>Field Definitions</name>
        <section anchor="field-v">
          <name>v (REQUIRED)</name>
          <t>Protocol version identifier.  <bcp14>MUST</bcp14> be the literal string <tt>alter1</tt>.
<bcp14>MUST</bcp14> appear as the first field in the record.  Resolvers <bcp14>MUST</bcp14>
reject any record whose <tt>v</tt> field is absent, is not the first
field, or contains a value other than <tt>alter1</tt>.</t>
          <t>The version namespace <tt>v=alter1</tt> on <tt>_alter.&lt;zone&gt;</tt> is independent
of the identically-named <tt>v=alter1</tt> on <tt>_org-alter.&lt;zone&gt;</tt>.  The
two namespaces are disambiguated by the enclosing record label and
<bcp14>MUST NOT</bcp14> be conflated.  Future versions of either record may
advance independently (e.g. <tt>_alter.&lt;zone&gt;</tt> may progress to
<tt>v=alter2</tt> while <tt>_org-alter.&lt;zone&gt;</tt> remains at <tt>v=alter1</tt>, or the
reverse).</t>
        </section>
        <section anchor="field-h">
          <name>h (REQUIRED)</name>
          <t>The Sovereign-, Bot-, or Instrument-tier <tt>~handle</tt> to which the
envelope binds.  The leading tilde is mandatory.  Where a resolver
encounters multiple envelope TXT RRs sharing an owner name, <tt>h=</tt> is
the sole field it <bcp14>MAY</bcp14> use to disambiguate them.  Publishers <bcp14>MUST
NOT</bcp14> create that arrangement (<xref target="alter-location"/>); the rule is retained for
resolvers only, so that a record published under revision 04 can
still be read.</t>
        </section>
        <section anchor="field-pk">
          <name>pk (REQUIRED)</name>
          <t>An Ed25519 public key prefixed by its algorithm namespace and
encoded in base64url without padding per <xref target="RFC4648"/> Section 5:</t>
          <artwork><![CDATA[
pk=ed25519:<base64url-no-pad-32-bytes>
]]></artwork>
          <t>Resolvers <bcp14>MUST</bcp14> reject records whose algorithm prefix is not
<tt>ed25519</tt> until a future revision registers additional algorithms.
The <tt>pk</tt> value is the verification key for the detached signature
in the <tt>sig</tt> field.</t>
        </section>
        <section anchor="field-ilr">
          <name>ilr (REQUIRED)</name>
          <t>Base64url-no-pad SHA-256 digest of an IdentityLog root that the
publisher claims was witnessed at envelope creation.  Revision 04
required resolvers to cross-reference this value and treated a
failure to do so as fatal.  That requirement is WITHDRAWN.  The
field carries a root and nothing more, so it cannot establish that
this envelope is recorded in that log, and a resolver <bcp14>MUST NOT</bcp14> rely
on it to detect substitution.  <xref target="identitylog"/> states what it can and
cannot establish, and <xref target="sec-substitution"/> sets out the forgery it permits.</t>
        </section>
        <section anchor="field-ts">
          <name>ts (REQUIRED)</name>
          <t>Envelope inception timestamp, expressed on the wire as decimal Unix
seconds.  Resolvers <bcp14>MAY</bcp14> use this field to detect clock skew,
evaluate caveat maturity, or reject envelopes with implausibly
future inception.  In the signing input of <xref target="signing-input"/> the value is
carried as a JSON string of those same decimal digits, never as a
JSON number.  A resolver that re-types it as a number canonicalises
different bytes and every signature fails against it.</t>
        </section>
        <section anchor="field-rev">
          <name>rev (REQUIRED)</name>
          <t>Base64url-no-pad SHA-256 digest of the revocation pre-image.
Revocation is effected by revealing the pre-image to the
IdentityLog; upon reveal, the envelope is considered revoked and
<bcp14>MUST NOT</bcp14> be honoured by resolvers.  The <tt>rev</tt> field is a
forward-secure commitment: the pre-image is never published in DNS
and is released only at revocation time to the log.</t>
          <t>Publishers <bcp14>MUST NOT</bcp14> treat removal of the TXT record as revocation.
Absence of a record is indistinguishable from misconfiguration; only
pre-image reveal is authoritative.</t>
        </section>
        <section anchor="field-sig">
          <name>sig (REQUIRED)</name>
          <t>Base64url-no-pad detached signature over the JCS-canonicalised
envelope JSON with the <tt>sig</tt> field absent.  Canonicalisation is
specified by <xref target="RFC8785"/>.  The signing input is the envelope JSON
reconstructed from the parsed TXT fields, plus a <tt>signature_alg</tt>
member derived from the <tt>pk=</tt> algorithm prefix per the registry of
<xref target="sigalg-registry"/>, plus an EMPTY <tt>caveats</tt> array.  The signature
algorithm itself is the one named by the <tt>pk=</tt> prefix.  The exact
signing input is normative and appears in <xref target="signing-input"/>; it is not
restated by reference elsewhere.</t>
        </section>
        <section anchor="unknown-fields">
          <name>Unknown fields</name>
          <t>Fields not enumerated above <bcp14>MUST</bcp14> be ignored by resolvers per
the forward-compatibility rule (<xref target="forward-compat"/>).  Future revisions of
this document <bcp14>MAY</bcp14> register additional envelope fields; such
extensions <bcp14>MUST</bcp14> be distinguishable from private-use extensions by
registration via the mechanism in <xref target="iana"/>.</t>
        </section>
      </section>
      <section anchor="signing-input">
        <name>Canonical Serialisation</name>
        <t>The <tt>sig</tt> input is constructed as follows.  This construction is
normative and exhaustive.  An implementation that deviates in a key
name, a value type, or the membership of the object will produce
bytes that no other implementation can verify.</t>
        <ol spacing="normal" type="1"><li>
            <t>Parse the TXT RR character-strings into key-value pairs.</t>
          </li>
          <li>
            <t>Derive <tt>signature_alg</tt> from the algorithm prefix of the <tt>pk</tt>
value via the Signature Algorithm Registry of <xref target="sigalg-registry"/>.  For
<tt>pk=ed25519:...</tt> the derivation yields the string <tt>Ed25519</tt>.</t>
          </li>
          <li>
            <t>Construct the envelope JSON object, whose members are exactly
the six parsed fields that are not <tt>sig</tt>, plus the derived
<tt>signature_alg</tt>, plus <tt>caveats</tt>:  </t>
            <sourcecode type="json"><![CDATA[
{
  "v": "<v>",
  "h": "<h>",
  "pk": "<pk>",
  "ilr": "<ilr>",
  "ts": "<ts>",
  "rev": "<rev>",
  "caveats": [],
  "signature_alg": "<derived>"
}
]]></sourcecode>
            <t>
The keys are the TXT field names, not expanded synonyms.  Every
value is a JSON string, <tt>ts</tt> included, which carries the decimal
digits of the TXT field verbatim and is NOT converted to a JSON
number.  <tt>caveats</tt> is a JSON array and, for any envelope resolved
from DNS under this document, it <bcp14>MUST</bcp14> be the EMPTY array.  This
document defines no caveat transport and no caveat vocabulary, so
a non-empty array has no interoperable meaning and an
implementation <bcp14>MUST NOT</bcp14> construct one.  <tt>sig</tt> <bcp14>MUST</bcp14> be absent from
the signing input, and no other member may be present.  These
rules make the signed bytes a total function of the TXT record,
which is the property v04 lacked.</t>
          </li>
          <li>
            <t>Apply <xref target="RFC8785"/> JSON Canonicalisation Scheme to the object,
which sorts the member names in code-point order.  The member
order shown above is illustrative and has no effect on the
canonical bytes.</t>
          </li>
          <li>
            <t>The resulting byte stream is the signing input for the algorithm
named in step 2.</t>
          </li>
        </ol>
        <t>Verification reverses this construction and checks the detached
signature in the <tt>sig</tt> field against the derived byte stream.</t>
        <t><tt>v</tt> is inside the signing input.  A resolver that accepted an
envelope whose version was unsigned could be walked down to a
weaker version namespace by an on-path rewrite of the <tt>v</tt> field
alone, so the version is signed with everything else.</t>
        <t>Publishers <bcp14>MUST</bcp14> emit TXT fields in the order given in <xref target="alter-abnf"/>,
but the DNS key=value ordering has no role in signature
computation: the signed bytes are always the JCS serialisation of
the JSON object.</t>
      </section>
      <section anchor="forward-compat">
        <name>Forward Compatibility</name>
        <t>Resolvers <bcp14>MUST</bcp14> ignore unknown fields in the <tt>_alter.&lt;domain&gt;</tt>
record.  This rule, identical to the v01 <tt>_mcp</tt> and v02
<tt>_org-alter</tt> specifications, ensures that future extensions do not
break existing implementations.</t>
        <t>Publishers <bcp14>MUST NOT</bcp14> introduce new fields that repurpose or overload
the seven required field names; new fields <bcp14>MUST</bcp14> use new names
registered via the procedure in <xref target="iana"/>.</t>
      </section>
      <section anchor="multistring">
        <name>Multi-String Reassembly</name>
        <t>Where the serialised envelope exceeds the 255-octet character-string
limit of <xref target="RFC1035"/> Section 3.3.14, publishers <bcp14>SHOULD</bcp14> split at <tt>; </tt>
boundaries between complete key-value pairs where the pair fits.  A
publisher <bcp14>MAY</bcp14> split within a key-value pair, and <bcp14>MUST</bcp14> do so where a
single pair exceeds 255 octets on its own, which any signature
algorithm with a large signature will require.  Resolvers <bcp14>MUST</bcp14>
concatenate the character-strings of a TXT RR in the order returned
by the DNS library (i.e. the RR wire order) BEFORE parsing, so the
split point is not observable to the parser and carries no meaning.</t>
      </section>
    </section>
    <section anchor="dnssec">
      <name>DNSSEC Requirement</name>
      <t>The zone publishing an <tt>_alter.&lt;domain&gt;</tt> envelope record <bcp14>MUST</bcp14> be
DNSSEC-signed per <xref target="RFC4033"/>, <xref target="RFC4034"/>, and <xref target="RFC4035"/>.
Authoritative servers <bcp14>MUST</bcp14> respond with valid RRSIG coverage for
the TXT RRset.  Recursive resolvers handling queries for the
envelope RRset <bcp14>MUST</bcp14> perform DNSSEC validation and <bcp14>MUST</bcp14> set the AD
(Authenticated Data) bit on the response delivered to the stub
client.</t>
      <t>Stub clients (MCP clients, alter-runtime daemons, onboarding
wizards, recognition verifiers) consuming <tt>_alter.&lt;domain&gt;</tt>
envelope records <bcp14>MUST</bcp14> reject any response that lacks a set AD bit
or that fails local RRSIG verification when operating in
validating-stub mode.  An envelope obtained over an unvalidated DNS
path is not an envelope; it is unauthenticated TXT content.
Treating it otherwise is a downgrade vulnerability (<xref target="sec-downgrade"/>).</t>
      <t>This requirement is specific to <tt>_alter.&lt;domain&gt;</tt> records.  DNSSEC
is <bcp14>RECOMMENDED</bcp14> but not <bcp14>REQUIRED</bcp14> for <tt>_mcp.&lt;domain&gt;</tt> and
<tt>_org-alter.&lt;domain&gt;</tt> records in this revision, for backward
compatibility with v01 and v02 deployments.  Future revisions of
this document <bcp14>MAY</bcp14> promote DNSSEC to <bcp14>REQUIRED</bcp14> for the other two
records once deployment data justifies the promotion.</t>
    </section>
    <section anchor="dane-tlsa">
      <name>DANE TLSA Pin</name>
      <t>The MCP endpoint associated with a published envelope <bcp14>MUST</bcp14> carry a
DANE TLSA resource record <xref target="RFC6698"/> binding the endpoint's leaf TLS
certificate or SubjectPublicKeyInfo to the zone.  The TLSA record
<bcp14>MUST</bcp14> be published at:</t>
      <artwork><![CDATA[
_443._tcp.mcp.<zone>. IN TLSA <usage> <selector> <matching-type>
                              <cert-association-data>
]]></artwork>
      <t>Recommended parameters:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Usage field.</strong> <tt>3</tt> (DANE-EE), pin the end-entity certificate
directly, with no CA chain reliance.  A publisher that explicitly
requires CA-chain validation <bcp14>MAY</bcp14> use <tt>1</tt> (PKIX-EE) instead.
Publishers <bcp14>MUST NOT</bcp14> use <tt>0</tt> (PKIX-TA) or <tt>2</tt> (DANE-TA) for the
envelope organ; the trust basis of the envelope is the
end-entity leaf.</t>
        </li>
        <li>
          <t><strong>Selector field.</strong> <tt>1</tt> (SPKI), pin the SubjectPublicKeyInfo so
that certificate rotations preserving the keypair do not
invalidate the record.  Selector <tt>0</tt> (full certificate) <bcp14>MAY</bcp14> be
used but requires more frequent TLSA republication.</t>
        </li>
        <li>
          <t><strong>Matching-type field.</strong> <tt>1</tt> (SHA-256).  Matching type <tt>2</tt>
(SHA-512) is reserved for future revisions.</t>
        </li>
      </ul>
      <t>Clients establishing an MCP session at <tt>https://mcp.&lt;zone&gt;/</tt> in
conjunction with a resolved envelope <bcp14>MUST</bcp14> fetch and validate the
TLSA record, <bcp14>MUST</bcp14> abort the TLS handshake on mismatch, and <bcp14>MUST NOT</bcp14>
fall back to PKIX-only validation on TLSA failure.</t>
      <t>The TLSA requirement is scoped to envelopes whose MCP session
establishment is triggered by the resolved envelope (i.e. when the
envelope resolution and the subsequent MCP session are part of a
single recognition transaction).  MCP clients that do not resolve
an envelope (e.g. v01-only clients consuming only <tt>_mcp.&lt;domain&gt;</tt>)
are out of scope for this requirement and continue to operate
under v01 rules.</t>
    </section>
    <section anchor="identitylog">
      <name>IdentityLog Cross-Reference</name>
      <t>The <tt>ilr=</tt> field of the <tt>_alter.&lt;domain&gt;</tt> record carries a
base64url-no-pad SHA-256 digest of an IdentityLog root claimed by
the publisher to have been witnessed at envelope creation.</t>
      <t>Revision 04 of this document required resolvers to cross-reference
that value against one of four named witness surfaces, and treated
a failure to do so as fatal to recognition.  That requirement is
WITHDRAWN.  It named surfaces that do not exist, and it would not
have achieved what it claimed even if they did.</t>
      <t>What <tt>ilr=</tt> can and cannot establish, stated plainly:</t>
      <ul spacing="normal">
        <li>
          <t>A resolver that has an independent view of the log <bcp14>MAY</bcp14> confirm
that the root named in <tt>ilr=</tt> is one the log actually published.</t>
        </li>
        <li>
          <t>A resolver <bcp14>MUST NOT</bcp14> conclude from <tt>ilr=</tt> that the envelope in
front of it is recorded in that log.  The field carries a root
and nothing else.  It carries no leaf hash, no audit path, and no
proof of inclusion, so no resolver can perform that check, and
<xref target="sec-substitution"/> sets out the forgery this permits.</t>
        </li>
        <li>
          <t>A resolver <bcp14>MUST NOT</bcp14> treat the presence, absence, or successful
lookup of <tt>ilr=</tt> as a defence against envelope substitution.</t>
        </li>
      </ul>
      <t>The field is retained so that withdrawing its security claim does
not also force a breaking change to the wire format.  It is
advisory.</t>
      <t>The log's leaf hashing, tree construction, cadence, and witness
protocol are not specified by this document, and a reader should
not assume a specification exists.</t>
      <t>The revocation check also crosses the IdentityLog.  Where a
resolver has access to the log's revocation surface, it <bcp14>MUST</bcp14> treat
the envelope as revoked, and <bcp14>MUST NOT</bcp14> honour it regardless of the
freshness of the TXT RRset, if a pre-image whose SHA-256 equals the
<tt>rev=</tt> field has been revealed there.</t>
      <t>A reader implementing from this document alone has no such access.
The surface that carries reveals is not specified here and is not
published anywhere a reader can fetch, so revocation status cannot
presently be established from DNS alone.  This is a gap in the
mechanism, not a property of it, and it is stated rather than
papered over.</t>
    </section>
    <section anchor="alter-uri">
      <name><tt>alter:</tt> URI Scheme Cross-Reference</name>
      <t>The URI scheme <tt>alter:</tt> provides a dispatchable
surface for <tt>~handle</tt> references: operating-system URI handlers
(xdg-mime, LSHandlers, Windows registry, Android intent-filter)
invoke a resolver that retrieves the envelope from DNS and verifies
it per <xref target="recognition"/>, falling back to the HTTPS <tt>.well-known</tt>
surface where the DNS record is absent.</t>
      <t>The registration sought is provisional, per <xref target="RFC7595"/> Section 3.  The full
registration body, scheme syntax, semantics, encoding
considerations, interoperability and security considerations,
author and change controller, is submitted to IANA separately from
this document.
The registration reference will be substituted when IANA assigns
one.</t>
      <t>Handlers invoked via <tt>alter:</tt> URIs <bcp14>MUST</bcp14> perform full envelope
verification, DNSSEC validation (<xref target="dnssec"/>), and DANE TLSA binding
(<xref target="dane-tlsa"/>) when establishing any HTTPS session, before acting on
any content or
directive derived from the envelope.</t>
    </section>
    <section anchor="procedures">
      <name>Discovery and Bootstrap Procedures</name>
      <t>The three procedures below are normative and complete.  None of them
is a summary of an algorithm specified elsewhere.</t>
      <t>Revisions 03 and 04 of this document did not restate the first two.
They pointed at them by section number, in a document the reader was
expected to fetch separately, and every one of those pointers named
the wrong section.  Nothing is incorporated by reference now.  The
formats these procedures consume are given in full in
<xref target="mcp-record"/> and <xref target="orgalter-record"/>, and the procedures
themselves are below.</t>
      <section anchor="mcp-discovery">
        <name>Discovery Procedure: <tt>_mcp.&lt;domain&gt;</tt></name>
        <t>This is the algorithm an MCP client follows to discover an MCP
server associated with a given domain.  It is the algorithm of
<xref target="DNSDISC-01"/>, restated here in full.  Revision 06 extended step 7b
to apply the key continuity rule of <xref target="key-continuity"/>.
Every other step is unchanged.</t>
        <section anchor="mcp-discovery-input">
          <name>Input</name>
          <t>The procedure takes a single input, an Origin Domain.  The Origin
Domain is typically extracted from an identifier encountered during
agent operation, such as an email address (<tt>user@example.com</tt> yields
<tt>example.com</tt>), a URL (<tt>https://example.com/path</tt> yields
<tt>example.com</tt>), a handle (<tt>~user@example.com</tt> yields
<tt>example.com</tt>), or a bare domain.</t>
        </section>
        <section anchor="mcp-discovery-algorithm">
          <name>Algorithm</name>
          <ol spacing="normal" type="1"><li>
              <t><strong>Normalise.</strong>  Convert the Origin Domain to its canonical form:
lowercase per <xref target="RFC4343"/>, and apply IDNA2008 processing where the
domain contains non-ASCII labels.</t>
            </li>
            <li>
              <t><strong>Construct query name.</strong>  Prepend the label <tt>_mcp.</tt> to the
normalised Origin Domain, yielding <tt>_mcp.&lt;origin&gt;.</tt>.</t>
            </li>
            <li>
              <t><strong>Query DNS.</strong>  Issue a DNS query for <tt>_mcp.&lt;origin&gt;. IN TXT</tt>
via the client's configured recursive resolver.  Clients <bcp14>SHOULD</bcp14>
prefer DoH (<xref target="RFC8484"/>) or DoT (<xref target="RFC7858"/>) to protect query
privacy (<xref target="privacy-query-metadata"/>).</t>
            </li>
            <li>
              <t><strong>Handle the DNS response.</strong>  </t>
              <t>
a. On NOERROR with one or more TXT records, proceed to step 5.  </t>
              <t>
b. On NXDOMAIN, or NOERROR with zero TXT records, proceed to
   step 8 (HTTPS fallback).  </t>
              <t>
c. On SERVFAIL or timeout, the client <bcp14>MAY</bcp14> retry with exponential
   backoff, or proceed to step 8.</t>
            </li>
            <li>
              <t><strong>Parse records.</strong>  For each TXT RDATA in the response:  </t>
              <t>
a. Concatenate all character-strings within the RDATA.  </t>
              <t>
b. Split the concatenated string on the <tt>";"</tt> delimiter, trimming
   leading and trailing whitespace from each field.  </t>
              <t>
c. Verify that the first field is <tt>v=mcp1</tt>.  If it is not,
   discard this record.  </t>
              <t>
d. Extract all recognised fields.  Ignore unknown fields, per the
   forward-compatibility rule of <xref target="mcp-forward-compat"/>.  </t>
              <t>
e. Verify that the <tt>url</tt> field is present and carries a
   syntactically valid HTTPS URL.  If it does not, discard this
   record.</t>
            </li>
            <li>
              <t><strong>Sort by priority.</strong>  Collect all valid records and sort them by
<tt>priority</tt> in ascending order, lowest value first.  Records of
equal priority <bcp14>MAY</bcp14> be tried in any order.</t>
            </li>
            <li>
              <t><strong>Connect.</strong>  For each record in priority order:  </t>
              <t>
a. Establish a TLS connection to the host named in the <tt>url</tt>
   field.  </t>
              <t>
b. Where the client holds a pinned key binding for the Origin
   Domain, apply <xref target="key-continuity"/> first, and verify the endpoint
   against the pinned key whether or not the record carries a
   <tt>pk</tt> field.  Otherwise, where the record carries a <tt>pk</tt> field,
   verify the key per <xref target="mcp-field-pk"/>.  On failure, skip to the
   next record.  </t>
              <t>
c. Determine the transport by applying the reading rule of
   <xref target="reading-legacy"/> to the record's <tt>transport</tt> and <tt>proto</tt>
   fields.  Where that rule directs the client to SKIP the
   record, skip it and proceed to the next record by priority.
   Otherwise, initiate the MCP session over the transport the
   rule yields.  </t>
              <t>
d. If the MCP <tt>initialize</tt> handshake succeeds, discovery is
   complete.  </t>
              <t>
e. If connection or handshake fails, proceed to the next record.
   If all records are exhausted, proceed to step 8.</t>
            </li>
            <li>
              <t><strong>HTTPS fallback.</strong>  Attempt HTTPS-based discovery by fetching
<tt>https://&lt;origin&gt;/.well-known/mcp/server-card.json</tt> per
<xref target="SEP-1649"/>, or <tt>https://&lt;origin&gt;/.well-known/mcp</tt> per
<xref target="SEP-1960"/>.  If fallback succeeds, proceed with the MCP session.
If fallback fails, discovery has failed.</t>
            </li>
          </ol>
          <t>This procedure does not consume the <tt>_alter.&lt;domain&gt;</tt> record and
imposes no DNSSEC requirement.  A client that resolves an envelope
executes <xref target="recognition"/> instead, which does.</t>
        </section>
      </section>
      <section anchor="orgalter-bootstrap">
        <name>Identity Bootstrap Procedure: <tt>_org-alter.&lt;domain&gt;</tt></name>
        <t>This is the procedure by which an org-alter implementation reads its
own DNS records on first install to populate its canonical identity
state.  It is the algorithm of <xref target="DNSDISC-02"/>, unchanged, restated
here in full.</t>
        <section anchor="orgalter-bootstrap-input">
          <name>Input</name>
          <t>The procedure takes a single input, the operator's primary domain
name, being the Policy Domain under which the operator publishes
records.</t>
        </section>
        <section anchor="orgalter-bootstrap-algorithm">
          <name>Algorithm</name>
          <ol spacing="normal" type="1"><li>
              <t><strong>Query <tt>_org-alter.&lt;domain&gt;</tt> TXT.</strong>  Issue a DNS query for the
Org-Identity Record.</t>
            </li>
            <li>
              <t><strong>If found, parse and load.</strong>  Extract <tt>org</tt>, <tt>entity</tt>,
<tt>entity-type</tt>, <tt>founded</tt>, <tt>regions</tt>, <tt>regulated</tt>, and
<tt>mcp-policy</tt> into the org-alter's identity state.  These become
the canonical identity declaration the org-alter uses in all
subsequent self-reports, brief generation, and external
attestation.</t>
            </li>
            <li>
              <t><strong>If <tt>bootstrap=</tt> is present, fetch the bootstrap document</strong> over
HTTPS.  Validate the document's TLS certificate against the
Policy Domain.  Merge the document's roster, logo, and extension
fields into the identity state.  Reject the bootstrap document if
its TLS certificate is invalid, or if its content does not parse.</t>
            </li>
            <li>
              <t><strong>Honour <tt>regulated=</tt> and <tt>mcp-policy=</tt></strong> as immutable structural
constraints on the org-alter instance.  </t>
              <t>
a. If <tt>regulated</tt> carries any framework token, set the
   org-alter's boundary policy to refuse, and disable every
   passive ingester layer.  </t>
              <t>
b. If <tt>mcp-policy=refuse-tenant</tt>, the org-alter <bcp14>MUST</bcp14> refuse to
   install any ingester that requires authenticated access to a
   tenant covered by the declared framework, even where
   credentials are subsequently provided.  </t>
              <t>
c. The wizard <bcp14>SHOULD</bcp14> display these constraints to the operator
   for confirmation, and <bcp14>MUST NOT</bcp14> allow the operator to override
   them silently.  An operator who wishes to relax a constraint
   <bcp14>MUST</bcp14> update the DNS record first, then re-run bootstrap.</t>
            </li>
            <li>
              <t><strong>Cross-check <tt>_mcp.&lt;domain&gt;</tt>.</strong>  Query the service-discovery
record of <xref target="mcp-record"/>.  Where both records exist and both
publish a <tt>pk</tt> field, the values <bcp14>MUST</bcp14> match.  A mismatch
indicates either a configuration error or a key compromise; the
wizard <bcp14>MUST</bcp14> refuse to bootstrap under that condition, and <bcp14>MUST</bcp14>
surface the discrepancy to the operator.  <xref target="sec-key-consistency"/>
states how this rule relates to the envelope key of
<xref target="alter-record"/>, which is a distinct key and is not subject to
it.</t>
            </li>
            <li>
              <t><strong>Verify against public registries.</strong>  Where the <tt>entity</tt> field
declares a known registry namespace (for example <tt>abn:</tt>), the
wizard <bcp14>SHOULD</bcp14> query the corresponding free public registry and
verify that the declared entity identifier resolves to the
declared <tt>org</tt> name.  A mismatch is not necessarily fatal,
because names change and registries lag, but the wizard <bcp14>MUST</bcp14>
surface the discrepancy and <bcp14>MUST</bcp14> require operator confirmation
before proceeding.</t>
            </li>
            <li>
              <t><strong>Persist canonical state.</strong>  Write the resolved identity into
the org-alter's local identity state, source-citing each field to
its DNS or HTTPS origin.</t>
            </li>
          </ol>
        </section>
        <section anchor="orgalter-bootstrap-coldstart">
          <name>First-Run Cold Start</name>
          <t>For an operator who has not yet published an <tt>_org-alter</tt> record at
the time of installation, the wizard <bcp14>MUST</bcp14> fall back to interactive
seeding.  It prompts for <tt>org</tt>, optionally prompts for <tt>entity</tt>, and
asks whether the operator's environment is regulated.  After
interactive seeding, the wizard <bcp14>SHOULD</bcp14> generate a draft DNS record
value for the operator to publish, which completes the bootstrap
loop.</t>
        </section>
      </section>
      <section anchor="recognition">
        <name>Envelope Recognition Procedure: <tt>_alter.&lt;domain&gt;</tt></name>
        <t>The procedure takes two inputs, a zone and the <tt>~handle</tt> to be
recognised, and both are <bcp14>REQUIRED</bcp14>.  An <tt>alter:~&lt;handle&gt;</tt> reference
supplies both.  A resolver that has only a zone, and no handle,
cannot execute this procedure.  Step 4 selects the record whose <tt>h=</tt>
matches the requested handle, and with no requested handle there is
nothing to match against.  Such a resolver has not been asked a
recognition question, and <bcp14>MUST NOT</bcp14> treat whatever record it finds at
the owner name as the answer to one.</t>
        <t>Given those two inputs, a resolver <bcp14>MUST</bcp14> execute the following steps
in order.  Steps 1 through 8 and step 10 are FATAL: failure of any
of them terminates recognition, and the envelope <bcp14>MUST</bcp14> be treated as
unverified.  Steps 9, 11 and 12 are ADVISORY in one specific sense,
and one only: BEING UNABLE TO PERFORM THEM <bcp14>MUST NOT</bcp14> terminate
recognition, because a resolver that cannot reach a surface has
learned nothing either way.  A POSITIVE finding at one of them is a
different matter, and step 12 is the case that bites: a revocation
actually observed is FATAL and <bcp14>MUST</bcp14> abort (step 12; <xref target="identitylog"/>).
Revision 04 made every step fatal, including steps that a
conformant resolver cannot perform at all, which made verification
unreachable.</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Query.</strong>  Issue a DNS TXT query for <tt>_alter.&lt;zone&gt;.</tt>.  Use
DoH or DoT in preference to UDP/53 where operationally feasible.</t>
          </li>
          <li>
            <t><strong>DNSSEC validation.</strong>  Validate the RRSIG chain from the root
trust anchor to the TXT RRset (<xref target="dnssec"/>).  Confirm the AD bit
on the response when relying on an upstream validating resolver,
or locally RRSIG-validate in validating-stub mode.  On failure,
abort.</t>
          </li>
          <li>
            <t><strong>Chunk reassembly.</strong>  Concatenate character-strings in RR order;
parse <tt>; </tt>-separated key-value pairs.</t>
          </li>
          <li>
            <t><strong>Handle disambiguation.</strong>  Select the record whose <tt>h=</tt> field
matches the requested <tt>~handle</tt>.  If no record matches, abort.</t>
          </li>
          <li>
            <t><strong>Field extraction.</strong>  Confirm presence of the seven required
fields (<tt>v</tt>, <tt>h</tt>, <tt>pk</tt>, <tt>ilr</tt>, <tt>ts</tt>, <tt>rev</tt>, <tt>sig</tt>).  Reject any
record missing any required field, or whose <tt>v</tt> is not
<tt>alter1</tt>.</t>
          </li>
          <li>
            <t><strong>Envelope reconstruction.</strong>  Build the envelope JSON exactly as
<xref target="signing-input"/> specifies, deriving <tt>signature_alg</tt> from the <tt>pk=</tt>
prefix and supplying an empty <tt>caveats</tt> array.</t>
          </li>
          <li>
            <t><strong>JCS canonicalisation.</strong>  Apply <xref target="RFC8785"/> JCS to the envelope
with the <tt>sig</tt> field absent.</t>
          </li>
          <li>
            <t><strong>Ed25519 verification.</strong>  Verify the detached <tt>sig</tt> over the
JCS byte stream using the public key in <tt>pk</tt>.  On failure,
abort.</t>
          </li>
          <li>
            <t><strong>IdentityLog cross-reference (ADVISORY, no longer fatal).</strong>  A
resolver with an independent view of the log <bcp14>MAY</bcp14> confirm that the
root named in <tt>ilr=</tt> is one the log published.  A resolver <bcp14>MUST
NOT</bcp14> abort on failure, and <bcp14>MUST NOT</bcp14> treat success as evidence that
this envelope is in the log, because <tt>ilr=</tt> carries no proof of
inclusion (<xref target="identitylog"/>; <xref target="sec-substitution"/>).  Revision 04 made this step
fatal on a check that cannot do what it claimed.</t>
          </li>
          <li>
            <t><strong>DANE TLSA validation.</strong>  When establishing an MCP session at
<tt>mcp.&lt;zone&gt;</tt> as part of the same recognition transaction, fetch
the TLSA record at <tt>_443._tcp.mcp.&lt;zone&gt;.</tt> and gate the TLS
handshake on the binding (<xref target="dane-tlsa"/>).  On mismatch, abort.</t>
          </li>
          <li>
            <t><strong>Caveats evaluation (OUT OF SCOPE for this document).</strong>  The
envelope schema admits an optional <tt>caveats</tt> array, which is
never carried in DNS.  This document specifies neither a
transport for it nor a vocabulary, so a resolver implementing
this document alone <bcp14>MUST</bcp14> treat the envelope as having no
caveats, and <bcp14>MUST</bcp14> verify the signature over an empty <tt>caveats</tt>
array per <xref target="signing-input"/>.  A future document may define a caveats
surface, and until one does, an envelope whose signer intended
caveats cannot be distinguished from one that carries none.
That limitation is stated here rather than hidden.</t>
          </li>
          <li>
            <t><strong>Revocation check (ADVISORY).</strong>  Where the resolver has access
to the log's revocation surface, consult it.  This step is
ADVISORY in the sense that being UNABLE to perform it <bcp14>MUST NOT</bcp14>
terminate recognition; a resolver that cannot reach a revocation
surface has learned nothing either way, and <xref target="identitylog"/> says why
one implementing this document alone cannot.  A POSITIVE result
is another matter entirely: if a pre-image whose SHA-256 equals
<tt>rev=</tt> has been revealed, the envelope IS revoked, recognition
<bcp14>MUST</bcp14> abort, and the envelope <bcp14>MUST NOT</bcp14> be honoured however fresh
the TXT RRset.</t>
          </li>
        </ol>
        <t>An envelope is verified when every FATAL step (1 through 8, and 10)
has succeeded AND no ADVISORY step has returned a positive failure.
The distinction matters at step 12: a resolver that CANNOT reach a
revocation surface has learned nothing and proceeds, while a
resolver that OBSERVES a revocation <bcp14>MUST</bcp14> abort and <bcp14>MUST NOT</bcp14> treat
the envelope as verified.  Steps 9, 11 and 12 are advisory only as
to unreachability, because gating verification on a step no
conformant implementation can execute would make verification
unreachable, and a specification no one can satisfy is not a
specification.  A verified envelope is the sole admissible input to
a recognition-over-qualification gate, and an
unverified envelope <bcp14>MUST</bcp14> be refused upstream of any authorisation
or trust decision.</t>
        <t>The twelve-step procedure above is normative and complete.  It is
not a summary of an algorithm specified elsewhere.</t>
      </section>
    </section>
    <section anchor="caching">
      <name>Caching</name>
      <t>The rules for the first two records are those of <xref target="DNSDISC-01"/> and
<xref target="DNSDISC-02"/>, unchanged, restated here so that a reader need not
fetch either document to cache correctly.</t>
      <t>For <tt>_mcp.&lt;domain&gt;</tt>, clients <bcp14>SHOULD</bcp14> cache the parsed record metadata
for the duration of the DNS TTL.  Where the record carries a <tt>ttl</tt>
field, clients <bcp14>MAY</bcp14> extend the metadata cache to that duration, but
<bcp14>MUST</bcp14> re-validate the underlying DNS record when the DNS TTL expires.
A client that has connected to an MCP server and verified its <tt>pk</tt>
        <bcp14>SHOULD</bcp14> cache the verified key binding and re-validate it on
subsequent connections, which is trust on first use with periodic
re-verification against DNS.  What the client does when that
re-verification disagrees with what it cached is stated in
<xref target="key-continuity"/>.</t>
      <t>For <tt>_org-alter.&lt;domain&gt;</tt>, records <bcp14>SHOULD</bcp14> be cached for the duration
of the DNS TTL.  An onboarding wizard typically reads the record
once at install time and persists the resolved state locally, so the
DNS record need not be re-read on every invocation.  Wizards <bcp14>MAY</bcp14>
re-read it on operator request, on <tt>epoch</tt> change detected by a
periodic background poll, or on identity verification failure.</t>
      <t><tt>_alter.&lt;domain&gt;</tt> records <bcp14>SHOULD</bcp14> be cached for the duration of the
DNS TTL.  Resolvers <bcp14>MUST NOT</bcp14> serve stale envelope TXT past the
RRset TTL unless they are themselves validating caches and can
re-confirm RRSIG coverage on each serve.  Recognition verifiers
<bcp14>MAY</bcp14> cache successful verification results locally for a short
interval (bounded above by the RRset TTL or 3600 seconds,
whichever is smaller) to amortise the cost of repeated JCS and
Ed25519 operations.  A resolver that is able to perform the
revocation check at all (<xref target="identitylog"/> sets out why one working from
this document alone is not) <bcp14>MUST</bcp14> re-run it on each recognition
event, not on each cache refresh.</t>
      <section anchor="key-continuity">
        <name>Key Continuity</name>
        <t>Revisions 01 through 06 said that a client caches a verified key
binding and re-validates it, and said nothing about a re-validation
that fails.  Trust on first use is only as strong as the rule for
the second use, and there was no such rule.  This section supplies
it.  The mechanism is the one SSH clients have long applied to host
keys, and it introduces nothing new.</t>
        <t>A pinned key binding is the triple a client holds after a successful
verification under <xref target="mcp-field-pk"/>: the Origin Domain, the <tt>pk</tt> it
verified, and the <tt>epoch</tt> the record carried at the time, defaulting
to <tt>0</tt> where the record carried none.  On each later resolution of
<tt>_mcp.&lt;domain&gt;</tt> for which it holds a pin, the client compares the
record it receives with the pin, and the following rules apply in
order.</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Same key, same epoch.</strong>  Continuity holds.  The client proceeds
under <xref target="mcp-discovery"/>.</t>
          </li>
          <li>
            <t><strong>Epoch lower than the pinned epoch.</strong>  The epoch is monotonic
(<xref target="mcp-field-epoch"/>), so a decrease is never a state a conformant
publisher produces.  It indicates a stale or manipulated response,
a publisher restoring an old record, or a new operator of the
domain that began its own count at <tt>0</tt>.  The client <bcp14>MUST NOT</bcp14> lower
its pinned epoch, and <bcp14>MUST NOT</bcp14> replace its pinned key on the
strength of this record.  It <bcp14>SHOULD</bcp14> re-query, bypassing any local
cache it controls.  Where the served key equals the pinned key,
the client <bcp14>MAY</bcp14> proceed, and <bcp14>MUST</bcp14> evaluate the kid of any claim
against its pinned epoch rather than the lower served one.  Where
the served key differs, the client <bcp14>MUST</bcp14> treat the server as
untrusted, exactly as a failed verification under
<xref target="mcp-field-pk"/>, and <bcp14>SHOULD</bcp14> surface the discrepancy.</t>
          </li>
          <li>
            <t><strong>Different key, same epoch.</strong>  The record's own contract is that
the epoch increments on every key rotation, so a key that changes
without it is an undeclared change.  The client <bcp14>MUST</bcp14> treat the
server as untrusted, <bcp14>MUST NOT</bcp14> replace its pin, and <bcp14>SHOULD</bcp14> surface
the discrepancy.</t>
          </li>
          <li>
            <t><strong>Different key, higher epoch.</strong>  This is a declared rotation.
The client <bcp14>MUST</bcp14> verify the new key per <xref target="mcp-field-pk"/> before
replacing its pin, and on success <bcp14>MAY</bcp14> replace the pinned key and
epoch.  A declared rotation is also exactly what a new operator
of a lapsed and re-registered domain can publish, because the
epoch is self-asserted by whoever controls the zone.  A client
with access to registration data <bcp14>SHOULD</bcp14> therefore apply the
change-of-control signals of <xref target="key-continuity-control"/> before it
replaces the pin.</t>
          </li>
          <li>
            <t><strong>Same key, higher epoch.</strong>  The client <bcp14>MAY</bcp14> raise its pinned
epoch.  Claims under the lower epoch are then handled per
<xref target="mcp-field-epoch"/>.</t>
          </li>
          <li>
            <t><strong>No key.</strong>  A record that carried a <tt>pk</tt> when the pin was made
and now carries none has not released the pin.  The client <bcp14>MUST</bcp14>
continue to verify the endpoint against the pinned key, as step 7b
of <xref target="mcp-discovery-algorithm"/> requires.  Removing the field is not
a way to rotate a key.</t>
          </li>
        </ol>
        <t>A pinned key <bcp14>MUST NOT</bcp14> be replaced automatically under rules 2, 3 or
6.  It <bcp14>MAY</bcp14> be replaced by an action of the client's user or operator,
taken outside this procedure and after the discrepancy has been
surfaced to them.</t>
        <section anchor="key-continuity-absence">
          <name>Absence Is Not Revocation</name>
          <t>A client that holds a pin and finds no <tt>_mcp</tt> record, on NXDOMAIN or
on NOERROR with no TXT records, proceeds to the HTTPS fallback of
step 8 of <xref target="mcp-discovery-algorithm"/>.  It <bcp14>MUST NOT</bcp14> clear the pin,
and <bcp14>MUST NOT</bcp14> treat the absence as revocation of the binding or of
any claim issued under it.  A client that reaches an endpoint for
the same Origin Domain by fallback <bcp14>SHOULD</bcp14> verify it against the
pinned key.</t>
          <t>This is the position <xref target="sec-revocation-opacity"/> takes for the envelope
record, and it is deliberate here for the same reason.  A zone that
is briefly unreachable, through an outage, a registrar incident or a
tooling error, must not become a revocation event.  It is deliberate
for a second reason that applies to pins alone.  If absence cleared a
pin, an attacker able to suppress the record for a single resolution
would reset the client to first use, and could then publish its own
key and have it accepted as though no pin had ever existed.</t>
          <t>It is also a deliberate difference from <xref target="DOMAIN-SET"/>, which holds in
its Section 6.4 that removal of a record is revocation.  The two
records do different jobs.  A domain-set record is an attestation
its publisher withdraws by deleting it.  An <tt>_mcp</tt> record is a
pointer to an endpoint, and a key binding is revoked by rotation,
under rule 4 above, never by the record going away.</t>
        </section>
        <section anchor="key-continuity-control">
          <name>Change-of-Control Signals</name>
          <t>The epoch cannot distinguish a rotation by the existing operator
from a rotation by a new one, because both publish a higher epoch
and a new key.  Registration data can, in part.  <xref target="DOMAIN-SET"/>
Section 6.3 gives consumer rules for this case, graded by the
strength of the signal, and this document adopts them for the pinned
key binding.  A client with access to registration data for the
Origin Domain, for example through RDAP <xref target="RFC9083"/>, <bcp14>SHOULD</bcp14> consume
those signals in the order given there, and act on them as follows.</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Creation date changed.</strong>  The registry object was deleted and
the name registered again, and renewal or restoration never
changes it.  The domain is now operated by a party the pin says
nothing about.  The client <bcp14>MUST</bcp14> discard the pin, <bcp14>MUST NOT</bcp14> carry the
pinned binding, or any trust its user or operator attached to it,
forward to whatever key the record now serves, and <bcp14>SHOULD</bcp14> surface
the change.  A binding made after that point is a first use, and
<bcp14>MUST NOT</bcp14> be presented as a continuation of the earlier one.</t>
            </li>
            <li>
              <t><strong>Lapse indicators.</strong>  A registry grace status, or an expiry
earlier than the observation, means the registration lapsed.
Control may have passed without deletion, because names sold on
in expiry auctions keep their creation date.  A declared rotation
under rule 4 observed while a lapse indicator is present <bcp14>MUST NOT</bcp14>
replace the pin automatically, and <bcp14>SHOULD</bcp14> be surfaced for the
action of the user or operator described above.</t>
            </li>
            <li>
              <t><strong>Transfer indicators.</strong>  A transfer event, or a change of
sponsoring registrar, <bcp14>SHOULD</bcp14> be surfaced as a warning.  It does
not by itself block a declared rotation.</t>
            </li>
          </ol>
          <t>A change of control that leaves no trace in registration data, such
as a sale inside one registrar with no lapse, followed by a declared
rotation, is not detectable by a client following this document.
<xref target="DOMAIN-SET"/> states the same limit for its own records.  It is stated
here rather than hidden.</t>
        </section>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>(Security considerations from v01 and v02 are retained.  Additional
considerations introduced by the envelope layer are below.)</t>
      <section anchor="sec-downgrade">
        <name>DNSSEC Downgrade</name>
        <t>The mandatory DNSSEC requirement in <xref target="dnssec"/> is the primary
defence against on-path manipulation of envelope TXT content.  An
attacker who can inject unsigned responses, e.g. via a compromised
resolver or a DNS middlebox that strips RRSIG, would otherwise
be able to substitute an attacker-controlled envelope at the resolver
boundary.  Stub clients <bcp14>MUST</bcp14> reject any response lacking AD or
failing local RRSIG verification.  Operators <bcp14>MUST NOT</bcp14> downgrade the
<tt>_alter.</tt> RRset to unsigned during KSK/ZSK rollover (see <xref target="RFC6781"/>
for best-current practice on rollover).</t>
      </section>
      <section anchor="tlsa-pin-rotation">
        <name>TLSA Pin Rotation</name>
        <t>The DANE TLSA requirement in <xref target="dane-tlsa"/> binds the MCP endpoint's TLS
leaf to a specific hash.  Operators rotating certificates <bcp14>MUST</bcp14>
publish the new TLSA record before the new certificate is activated
on the live listener, with a grace window of at least twice the
TLSA RRset TTL.  Selector 1 (SPKI) survives rotations that preserve
the keypair; selector 0 requires republication on every rotation.
Loss of the TLS private key forces certificate reissue and
republication of the TLSA record, not silent cert replacement.  It
does not engage the <tt>rev=</tt> reveal path, which revokes the identity
envelope and has no bearing on a TLS leaf.</t>
      </section>
      <section anchor="sec-substitution">
        <name>Envelope Substitution</name>
        <t>An attacker in control of a domain's DNS can publish an arbitrary
envelope for any <tt>~handle</tt> claimed to be hosted under that zone.
The structural defences, and the limit of each, are:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>IdentityLog witness.  This defence does not hold as specified,
and revision 04 was wrong to claim it did.</strong>  Revision 04 stated
that substitution of a locally-minted envelope that had not been
witnessed would fail, and that an attacker would have to corrupt
a log mirror.  Neither is true of the mechanism this document
specifies.  <tt>ilr=</tt> carries a bare tree root and no proof of
anything, so a resolver can confirm that the named root was
witnessed but CANNOT confirm that the envelope in front of it is
a leaf under that root, and no field of <xref target="alter-abnf"/> would let it.
A zone attacker therefore mints an envelope, copies any genuinely
witnessed root out of the public log, signs, and publishes.  The
result satisfies every check the recognition procedure of
<xref target="recognition"/> specifies.  As specified, <tt>ilr=</tt> establishes only
that the publisher could read a public value.  Implementers <bcp14>MUST
NOT</bcp14> rely on <tt>ilr=</tt> to detect substitution.</t>
          </li>
          <li>
            <t><strong>Ed25519 signature.</strong>  The detached signature binds the
envelope to a specific Ed25519 key.  An attacker who does not
hold the private key cannot forge a valid <tt>sig</tt>.  An attacker
who does hold the private key has already compromised the
handle; the revocation path (<xref target="identitylog"/>) is the residual mitigation.</t>
          </li>
          <li>
            <t><strong>DNSSEC.</strong>  <xref target="dnssec"/> prevents tampering with the TXT RRset in
transit.  This does not prevent a malicious zone operator from
publishing a malicious envelope, that attack is caught at
(1) and (2), but it prevents third-party substitution.</t>
          </li>
        </ol>
      </section>
      <section anchor="sec-revocation-opacity">
        <name>Revocation Opacity</name>
        <t>Revocation is effected by revealing the pre-image to the
IdentityLog, not by removing the TXT record.  Absence of a record
is indistinguishable from misconfiguration; resolvers <bcp14>MUST NOT</bcp14>
treat absence as revocation.  This design is deliberate: a zone
briefly unreachable (DNS outage, registrar incident, tooling error)
must not accidentally become a revocation event.
<xref target="key-continuity-absence"/> applies the same position to a pinned
<tt>_mcp</tt> key binding, and says why it differs from <xref target="DOMAIN-SET"/>.</t>
        <t>The cost is that a compromised zone may continue to serve a valid
(but intended-to-be-revoked) envelope until the rightful
handle-holder reveals the pre-image.  This document does not
specify where a reveal is published, and <xref target="identitylog"/> says why no such
surface can be assumed, so revocation is not presently actionable
by a resolver working from this document alone.
Handle-holders <bcp14>SHOULD</bcp14> establish a pre-committed revocation reveal
procedure at mint time.</t>
      </section>
      <section anchor="clock-skew-and-ts">
        <name>Clock Skew and <tt>ts=</tt></name>
        <t>The <tt>ts=</tt> inception timestamp is advisory: resolvers <bcp14>MAY</bcp14> use it to
detect implausibly future envelopes (e.g. minted more than a few
hundred seconds after current wall time) but <bcp14>MUST NOT</bcp14> rely on
local clock for security-critical decisions.  This document
specifies no authoritative ordering anchor.  <tt>ts=</tt> is self-asserted
by the publisher and is advisory only.</t>
      </section>
      <section anchor="sec-key-consistency">
        <name>Cross-Record Key Consistency</name>
        <t>Where all three records (<tt>_mcp</tt>, <tt>_org-alter</tt>, <tt>_alter</tt>) are
published under one zone and each carries a <tt>pk</tt> field, the values
<bcp14>MUST</bcp14> be evaluated for consistency.  Two different rules apply, and
revision 04 stated only one of them, which contradicted the
bootstrap procedure it incorporated by reference.</t>
        <t>The <tt>_mcp.pk</tt> and <tt>_org-alter.pk</tt> fields are the service key and the
organisational key.  Step 5 of <xref target="orgalter-bootstrap"/>, restated from
<xref target="DNSDISC-02"/>, requires them to MATCH where both are published, and
requires a bootstrapping wizard to refuse and to surface the
discrepancy where they do not.  That rule is unchanged.  A mismatch
across that pair indicates a configuration error or a key
compromise.</t>
        <t>The <tt>_alter.pk</tt> field is the Sovereign-tier envelope key.  It is a
structurally distinct key with a distinct purpose, it is NOT subject
to the bootstrap match rule, and it <bcp14>MAY</bcp14> differ from both of the
others.  A resolver <bcp14>MUST NOT</bcp14> treat a difference between <tt>_alter.pk</tt>
and either of the other two as evidence of anything.</t>
        <t>Where a zone operator has deliberately bound all three to one
Ed25519 key, which is a common pattern in a single-operator
deployment, a later mismatch indicates either a rotation in progress
or a compromise, and resolvers <bcp14>SHOULD</bcp14> surface it.  A resolver cannot
distinguish that deployment from one that intended three distinct
keys, because this document publishes no signal of the operator's
intent, so the surfacing is advisory and <bcp14>MUST NOT</bcp14> be fatal.</t>
      </section>
      <section anchor="passive-stream-coupling">
        <name>Passive-Stream Coupling</name>
        <t>A publisher <bcp14>SHOULD NOT</bcp14> ride an inferred trait, a passive-stream
derivative, or a provenance-tagged attribute on the
<tt>_alter.&lt;domain&gt;</tt> record.</t>
        <t>Revision 04 asserted that none could, calling it a structural
property rather than a recommendation, on the grounds that the ABNF
enumerates every field a resolver accepts.  That claim is
WITHDRAWN.  The ABNF of <xref target="alter-abnf"/> admits
<tt>unknown-field = token "=" *qtext</tt>, which is arbitrary attribute
carriage by construction, and <xref target="forward-compat"/> requires resolvers to
IGNORE unknown fields rather than reject the record.  The <tt>qtext</tt>
rule bounds only the field DELIMITER, so that an unknown field
cannot swallow the semicolon and consume the fields after it.  It
bounds nothing about the field's meaning.  Nothing in
this document structurally prevents a publisher from riding
additional attributes on this owner name, and a resolver <bcp14>MUST NOT</bcp14>
infer from a record's conformance that it carries nothing else.</t>
        <t>Two consequences follow, and neither was stated before.  An
unknown-field is NOT covered by the signing input of <xref target="signing-input"/>,
which spans the six required fields other than <tt>sig</tt>, plus the
derived <tt>signature_alg</tt> and an empty <tt>caveats</tt> array, and nothing
else.  Any attribute riding the record is therefore UNSIGNED, and a
resolver <bcp14>MUST NOT</bcp14> attribute it to the handle-holder.  And because a resolver ignores what it does
not recognise, the record is a viable carrier for data the envelope
was never meant to convey.  The privacy implications of passive
inference are out of scope for this document; the carriage risk is
not, and it is stated here.</t>
      </section>
      <section anchor="sec-change-of-control">
        <name>Change of Control</name>
        <t>Every record this document defines names its subject by a domain,
and a domain can change hands.  When a registration lapses and the
name is registered again, the new registrant controls the zone and
can publish any of the three records.  Nothing in the records
changes shape when that happens, and no single resolution can tell
the new operator from the old one.</t>
        <t>For the <tt>_mcp</tt> record, <xref target="key-continuity"/> is the defence.  A client
that pinned the prior operator's key refuses an undeclared key change
and an epoch that goes down, keeps its pin when the record
disappears, and, where it can read registration data, discards the
pin on a changed creation date rather than carrying it to the new
operator.  A client that has never connected before has no pin, and
for that client a re-registered domain is indistinguishable from any
other first use.</t>
        <t>For the <tt>_alter</tt> record, the limit stated in <xref target="sec-substitution"/>
applies without change.  The envelope carries no epoch, and this
document specifies no pin for it.  A new registrant can mint an
envelope for a handle under a key of its own and satisfy every FATAL
step of <xref target="recognition"/>.  A resolver that has previously verified an
envelope for the same handle, and now finds a different <tt>pk</tt>, <bcp14>SHOULD</bcp14>
surface the change.  It learns nothing further from this document
about which of the two keys the handle-holder controls.</t>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>(Privacy considerations from v01 and v02 are retained.  Additional
considerations introduced by the envelope layer are below.)</t>
      <section anchor="public-handle-disclosure">
        <name>Public Handle Disclosure</name>
        <t>Publishing <tt>_alter.&lt;domain&gt;</tt> exposes the bound <tt>~handle</tt>, its
Ed25519 public key, its IdentityLog root, its inception timestamp,
and its revocation-hash commitment to any DNS observer.  Revision
04 called that exposure by design, on the grounds that the envelope
is intended to be publicly verifiable.  Public verifiability does
not require public enumeration, and <xref target="alter-applicability"/> sets out why the
two came bundled here and should not have.
A handle-holder who requires concealment <bcp14>MUST NOT</bcp14> publish an
<tt>_alter.&lt;domain&gt;</tt> record; alternative organs
(the local <tt>alter-runtime</tt> daemon for local-only recognition, or
a hardware-anchored device-organ quorum for device-local presence
proof) support recognition without DNS publication.</t>
      </section>
      <section anchor="privacy-query-metadata">
        <name>DNS Query Metadata</name>
        <t>A resolver querying <tt>_alter.example.com</tt> reveals to its recursive
resolver that it intends to verify the envelope hosted under that
zone.  Query metadata privacy is addressed at the transport layer:
clients <bcp14>SHOULD</bcp14> prefer DoH (<xref target="RFC8484"/>) or DoT (<xref target="RFC7858"/>) over
UDP/53 where operationally feasible.  This consideration is
identical to v01 / v02 and is repeated here for emphasis given the
greater individual-identity sensitivity of the envelope surface.</t>
      </section>
      <section anchor="revocation-unlinkability">
        <name>Revocation Unlinkability</name>
        <t>The <tt>rev=</tt> field is the SHA-256 of a secret pre-image; publishing
it does not disclose the pre-image.  An observer cannot predict
the pre-image or link it back to any identifier.  Reveal at
revocation time links the pre-image to the envelope, but only at
the moment of revocation, not during the envelope's active
lifetime.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-labels">
        <name>Underscored DNS Node Name Registration</name>
        <t>This document requests IANA to update the entries in the
"Underscored and Globally Scoped DNS Node Names" registry
established by <xref target="RFC8552"/> as follows.  Each label is defined by this
document, in the section named, and no longer by an earlier revision
of it.</t>
        <table>
          <thead>
            <tr>
              <th align="left">RR Type</th>
              <th align="left">_NODE NAME</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TXT</td>
              <td align="left">
                <tt>_mcp</tt></td>
              <td align="left">
                <xref target="mcp-record"/> of this document</td>
            </tr>
            <tr>
              <td align="left">TXT</td>
              <td align="left">
                <tt>_org-alter</tt></td>
              <td align="left">
                <xref target="orgalter-record"/> of this document</td>
            </tr>
            <tr>
              <td align="left">TXT</td>
              <td align="left">
                <tt>_alter</tt></td>
              <td align="left">
                <xref target="alter-record"/> of this document</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>_alter</tt> label is used to publish envelope records as defined
in <xref target="alter-record"/> of this document.  Formal registration of <tt>_alter</tt>
in the RFC 8552 registry is proposed on Standards Action
maturation of this draft; during the Internet-Draft phase, the
label operates under the provisional-use convention established by
<tt>_dmarc</tt>, <tt>_mta-sts</tt>, <tt>_mcp</tt> (this draft), and <tt>_org-alter</tt> (this
draft).</t>
      </section>
      <section anchor="alter-uri-scheme-registration">
        <name><tt>alter:</tt> URI Scheme Registration</name>
        <t>This document cross-references the requested provisional
registration of <tt>alter:</tt> per <xref target="RFC7595"/> Section 3.  The full
registration body is submitted to IANA separately.  This document
notes that recognition verifiers invoked via <tt>alter:</tt> URIs <bcp14>MUST</bcp14>
follow <xref target="recognition"/> of this document for envelope verification.</t>
      </section>
      <section anchor="envelope-version-registry">
        <name>Envelope Version Registry</name>
        <t>This document defines the version tag <tt>v=alter1</tt> for the
<tt>_alter.&lt;domain&gt;</tt> record, independent of the identically-named tag
on the <tt>_org-alter.&lt;domain&gt;</tt> record.  Future versions (<tt>v=alter2</tt>
and beyond) <bcp14>SHOULD</bcp14> be coordinated with the ~alter implementation
community and documented in successor revisions of this draft.
Until a formal IETF working group is chartered for
identity-envelope DNS publication, the authors maintain the version
namespace.</t>
      </section>
      <section anchor="org-alter-version-registry-unchanged-from-v02">
        <name>Org-Alter Version Registry (unchanged from v02)</name>
        <t>The version tag <tt>v=alter1</tt> for the <tt>_org-alter.&lt;domain&gt;</tt> record is
preserved from v02.  No changes are requested in this revision.</t>
      </section>
      <section anchor="registry-namespace-registry-unchanged-from-v02">
        <name>Registry Namespace Registry (unchanged from v02)</name>
        <t>The initial set of <tt>entity</tt> field registry namespaces (<tt>abn</tt>,
<tt>acn</tt>, <tt>ein</tt>, <tt>ch</tt>, <tt>cro</tt>, <tt>lei</tt>) defined in v02 is preserved
unchanged.</t>
      </section>
      <section anchor="framework-token-registry-unchanged-from-v02">
        <name>Framework Token Registry (unchanged from v02)</name>
        <t>The initial set of <tt>regulated</tt> framework tokens (<tt>disp</tt>, <tt>itar</tt>,
<tt>ear</tt>, <tt>hipaa</tt>, <tt>gdpr</tt>, <tt>soc2</tt>, <tt>iso27001</tt>, <tt>iso42001</tt>,
<tt>essential8</tt>, <tt>aprs</tt>) defined in v02 is preserved unchanged.</t>
      </section>
      <section anchor="sigalg-registry">
        <name>Signature Algorithm Registry</name>
        <t>This document defines the initial <tt>pk=</tt> and <tt>sig=</tt> algorithm
namespace <tt>ed25519</tt> for the <tt>_alter.&lt;domain&gt;</tt> record.  Future
algorithms (e.g. <tt>ed448</tt>, <tt>ml-dsa-65</tt>) <bcp14>MAY</bcp14> be registered by
successor documents.  Resolvers <bcp14>MUST</bcp14> reject records whose
algorithm prefix is not registered at the resolver's protocol
version.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This section provides non-normative examples of Envelope Records
for common deployment scenarios.</t>
      <section anchor="minimal-envelope-for-a-single-handle-not-recommended">
        <name>Minimal Envelope for a Single Handle (<bcp14>NOT RECOMMENDED</bcp14>)</name>
        <t>A zone hosting a single Sovereign-tier handle publishes its
envelope at <tt>_alter.&lt;zone&gt;.</tt>:</t>
        <artwork><![CDATA[
_alter.example.com. 3600 IN TXT (
  "v=alter1; h=~alice; "
  "pk=ed25519:<EXAMPLE-pubkey-32B-base64url>; "
  "ilr=<EXAMPLE-identitylog-root-32B-base64url>; "
  "ts=1729123456; "
  "rev=<EXAMPLE-revocation-hash-32B-base64url>; "
  "sig=<EXAMPLE-ed25519-signature-64B-base64url>"
)
]]></artwork>
        <t>All base64url values in this example are illustrative.  Production
values are the Ed25519 public key, SHA-256 digests, and 64-byte
detached signature encoded per <xref target="RFC4648"/> Section 5 without
padding.</t>
      </section>
      <section anchor="zone-hosting-multiple-handles-a-publisher-must-not-do-this">
        <name>Zone Hosting Multiple Handles (a publisher MUST NOT do this)</name>
        <t>This example is retained so that a resolver can read the records a
v04 publisher may already have published.  It is NOT a pattern to
follow.  The shape below IS the enumeration exposure described in
the Applicability statement.  One query at the owner name returns
every handle the zone hosts, and none of the individuals listed can
consent on behalf of the others.  A publisher <bcp14>MUST NOT</bcp14> create it
(<xref target="alter-location"/>).</t>
        <t>Resolvers disambiguate by the <tt>h=</tt> field:</t>
        <artwork><![CDATA[
_alter.example.org. 3600 IN TXT "v=alter1; h=~alice; pk=..."
_alter.example.org. 3600 IN TXT "v=alter1; h=~bob; pk=..."
_alter.example.org. 3600 IN TXT "v=alter1; h=~carol.bot; pk=..."
]]></artwork>
        <t>A resolver asked to verify <tt>~bob</tt> at <tt>example.org</tt> selects the
second RR.</t>
      </section>
      <section anchor="full-zone-all-three-records-the-alter-record-is-not-recommended">
        <name>Full Zone (All Three Records; the <tt>_alter</tt> record is <bcp14>NOT RECOMMENDED</bcp14>)</name>
        <t>A zone operator running an org-alter instance for their own
principal handle publishes all three records:</t>
        <artwork><![CDATA[
_mcp.example.com.      IN TXT "v=mcp1; url=https://mcp.example.com/"
_org-alter.example.com. IN TXT "v=alter1; org=Example Org; ..."
_alter.example.com.     IN TXT "v=alter1; h=~alice; "
                               "pk=ed25519:...; ilr=...; "
                               "ts=...; rev=...; sig=..."
_443._tcp.mcp.example.com. IN TLSA 3 1 1 <sha256-of-spki>
]]></artwork>
        <t>Together these expose: the MCP service endpoint and its
capabilities (<tt>_mcp</tt>); the legal entity, regulatory posture, and
jurisdictional regions (<tt>_org-alter</tt>); the Sovereign-tier
envelope for <tt>~alice</tt> (<tt>_alter</tt>); and the DANE TLSA pin on the
MCP endpoint.  A resolver may consume any subset according to its
recognition requirement.</t>
      </section>
      <section anchor="instrument-tier-handle-not-recommended">
        <name>Instrument-Tier Handle (<bcp14>NOT RECOMMENDED</bcp14>)</name>
        <t>An AI instrument handle uses the <tt>~cc-</tt> prefix:</t>
        <artwork><![CDATA[
_alter.example.com. 3600 IN TXT (
  "v=alter1; h=~cc-example-model; "
  "pk=ed25519:...; ilr=...; ts=...; rev=...; sig=..."
)
]]></artwork>
        <t>Instrument-tier envelopes are bound to a specific model version.
Rotation of the model version produces a new <tt>~cc-</tt> handle with a
new envelope; the prior envelope remains verifiable over its
active lifetime and is revoked by the IdentityLog reveal path when
the model is retired.</t>
      </section>
    </section>
    <section anchor="interop">
      <name>Interoperability with Earlier Record Generations</name>
      <t>A domain that publishes only a v01 <tt>_mcp.&lt;domain&gt;</tt> record continues
to work with all v01, v02, and v03 clients.  Where that record
carries a transport value in <tt>proto</tt>, a client conforming to this
revision reads it under rule 3 of <xref target="reading-legacy"/> and reaches the
same endpoint over the same transport.  No republication is required
for the record to keep working, and none is required for a record
carrying a <tt>proto</tt> value that no revision recognised, because such a
record was skipped by v01 clients and is skipped by these.</t>
      <t>A domain that publishes <tt>_mcp.&lt;domain&gt;</tt> and <tt>_org-alter.&lt;domain&gt;</tt>
(v02) continues to work with v02 clients and with clients conforming
to this document, unchanged.  A client conforming to this document
may additionally query <tt>_alter.&lt;domain&gt;</tt> and <bcp14>MUST</bcp14> handle its absence
gracefully, which is the common case and the recommended one:
publication of that record is <bcp14>NOT RECOMMENDED</bcp14>
(<xref target="alter-applicability"/>), so a conforming client should expect to
find it absent and <bcp14>MUST NOT</bcp14> treat its absence as an error.</t>
      <t>A domain that publishes all three records benefits from:</t>
      <ul spacing="normal">
        <li>
          <t>Service discovery via <tt>_mcp.&lt;domain&gt;</tt> (v01).</t>
        </li>
        <li>
          <t>Organisational identity bootstrap via <tt>_org-alter.&lt;domain&gt;</tt>
(v02).</t>
        </li>
        <li>
          <t>Individual identity recognition via <tt>_alter.&lt;domain&gt;</tt> (v03).</t>
        </li>
        <li>
          <t>DNSSEC-authenticated envelope delivery (<xref target="dnssec"/>).</t>
        </li>
        <li>
          <t>DANE TLSA binding on the MCP endpoint (<xref target="dane-tlsa"/>).</t>
        </li>
      </ul>
      <t>A domain that publishes only <tt>_alter.&lt;domain&gt;</tt> (envelope-only, no
MCP server, no organisational record) is permitted by the grammar.
Revision 04 called it the appropriate configuration for a
Sovereign-tier individual.  That recommendation is WITHDRAWN, and
the configuration is <bcp14>NOT RECOMMENDED</bcp14> per <xref target="alter-applicability"/>.</t>
      <t>The three records are orthogonal along their semantic axes but
share the zone's DNSSEC trust root.  A resolver conforming to this
document that resolves any subset of the three records treats each
resolution as independent and does not fail the resolution of one
record because another is absent or malformed.</t>
    </section>
    <section anchor="impl-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations at the
time of publication, per <xref target="RFC7942"/>.</t>
      <t>This section was materially wrong in revision 04, which described a
deployment that does not exist.  It is rewritten here against the
zone as it actually resolves and the code as it is actually
written.  What follows is deployed, and nothing else is claimed.</t>
      <t>Deployed and resolvable in the <tt>truealter.com</tt> zone:</t>
      <ul spacing="normal">
        <li>
          <t><tt>_mcp.truealter.com</tt>, carrying <tt>v=mcp1</tt> with <tt>url</tt>, <tt>proto</tt>,
<tt>pk</tt>, <tt>epoch</tt>, and <tt>cap</tt>.  This is the only record in the zone
that a resolver can verify against this document today.</t>
        </li>
        <li>
          <t><tt>_alter.truealter.com</tt>, carrying <tt>v=alter1</tt>.  It does not carry
the envelope field set (<tt>h</tt>, <tt>ilr</tt>, <tt>ts</tt>, <tt>rev</tt>, <tt>sig</tt>) and is
therefore NOT an instance of the Envelope Record of <xref target="alter-record"/>.
No conformant Envelope Record is published in this zone.</t>
        </li>
        <li>
          <t><tt>_org-alter.truealter.com</tt>, carrying <tt>v=alter1</tt> with <tt>org</tt>,
<tt>entity</tt>, <tt>entity-type</tt>, <tt>founded</tt>, <tt>regions</tt>, <tt>mcp-policy</tt>,
<tt>epoch</tt>, <tt>pk</tt>, and <tt>attest</tt>.  It omits <tt>regulated</tt> and <tt>bootstrap</tt>.
Its <tt>pk</tt> is the same key the <tt>_mcp</tt> record carries, as step 5 of
<xref target="orgalter-bootstrap-algorithm"/> requires.  Revision 05 recorded this label as
NXDOMAIN; it was provisioned after that revision was filed.</t>
        </li>
      </ul>
      <t>The zone is DNSSEC-signed, so the requirement of <xref target="dnssec"/> is met by
the operator.  <tt>truealter.com</tt> publishes a key-signing key and a
zone-signing key, both algorithm 13, and the parent zone holds a
corresponding DS record.  Revision 05 stated the opposite, that the
zone published no DNSKEY and the parent held no DS, and that statement
was already wrong when it was filed: the zone was signed nine days
earlier.  The erroneous statement carried a consequence, that no
Envelope Record could be relied upon in this zone until the zone was
signed, and that consequence is withdrawn with it.</t>
      <t>Implemented in code, and NOT exercised against any conformant
envelope, because none is published:</t>
      <ul spacing="normal">
        <li>
          <t>A resolver and verification library implementing the JCS
signing-input construction of <xref target="signing-input"/> and the Ed25519
signature check.  It conforms to this revision on the signing
input and the signature check.  It does NOT conform on two steps
of the recognition procedure of <xref target="recognition"/>: it still treats the
IdentityLog cross-reference as fatal, where step 9 now says a
resolver <bcp14>MUST NOT</bcp14> abort, and it still fetches caveats over HTTPS,
which step 11 now places out of scope.  Those two steps follow
revision 04, and this document does not claim otherwise.</t>
        </li>
      </ul>
      <t>NOT deployed, and stated plainly because revision 04 claimed
otherwise:</t>
      <ul spacing="normal">
        <li>
          <t><tt>_443._tcp.mcp.truealter.com</tt> does not resolve, so no DANE TLSA
pin is published and the DANE binding of <xref target="dane-tlsa"/> is untested in
deployment.</t>
        </li>
        <li>
          <t>There is no signed-tree-head federation and no witness-mirror
network.  Revision 04 described four independent witness surfaces
including an on-chain anchor contract.  None of them exist.</t>
        </li>
        <li>
          <t>No inclusion proof is generated or checked anywhere.  The <tt>ilr</tt>
field of <xref target="alter-abnf"/> is published as a bare root with no proof
attached.  <xref target="sec-substitution"/> sets out what that permits.</t>
        </li>
      </ul>
      <t>The Envelope Record of <xref target="alter-record"/> therefore has NO conformant
deployment at the time of writing, in this zone or any other known
to the author.  It is specified, implemented in a verifier, and
unpublished.</t>
      <t>The deployed <tt>_alter.truealter.com</tt> record carries none of the
envelope fields that <xref target="alter-record"/> defines, so it is not an instance of
the Envelope Record and a resolver <bcp14>MUST NOT</bcp14> treat it as one.</t>
      <t>The key continuity rule of <xref target="key-continuity"/> is new in revision 06.
No implementation of it is claimed.</t>
    </section>
  </middle>
  <back>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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="RFC4033" target="https://www.rfc-editor.org/info/rfc4033" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </reference>
        <reference anchor="RFC4034" target="https://www.rfc-editor.org/info/rfc4034" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml">
          <front>
            <title>Resource Records for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
              <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4034"/>
          <seriesInfo name="DOI" value="10.17487/RFC4034"/>
        </reference>
        <reference anchor="RFC4035" target="https://www.rfc-editor.org/info/rfc4035" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4035.xml">
          <front>
            <title>Protocol Modifications for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.</t>
              <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4035"/>
          <seriesInfo name="DOI" value="10.17487/RFC4035"/>
        </reference>
        <reference anchor="RFC4343" target="https://www.rfc-editor.org/info/rfc4343" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4343.xml">
          <front>
            <title>Domain Name System (DNS) Case Insensitivity Clarification</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>Domain Name System (DNS) names are "case insensitive". This document explains exactly what that means and provides a clear specification of the rules. This clarification updates RFCs 1034, 1035, and 2181. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4343"/>
          <seriesInfo name="DOI" value="10.17487/RFC4343"/>
        </reference>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml">
          <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="RFC5234" target="https://www.rfc-editor.org/info/rfc5234" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC6698" target="https://www.rfc-editor.org/info/rfc6698" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6698.xml">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>Encrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6698"/>
          <seriesInfo name="DOI" value="10.17487/RFC6698"/>
        </reference>
        <reference anchor="RFC7208" target="https://www.rfc-editor.org/info/rfc7208" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7208.xml">
          <front>
            <title>Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1</title>
            <author fullname="S. Kitterman" initials="S." surname="Kitterman"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>Email on the Internet can be forged in a number of ways. In particular, existing protocols place no restriction on what a sending host can use as the "MAIL FROM" of a message or the domain given on the SMTP HELO/EHLO commands. This document describes version 1 of the Sender Policy Framework (SPF) protocol, whereby ADministrative Management Domains (ADMDs) can explicitly authorize the hosts that are allowed to use their domain names, and a receiving host can check such authorization.</t>
              <t>This document obsoletes RFC 4408.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7208"/>
          <seriesInfo name="DOI" value="10.17487/RFC7208"/>
        </reference>
        <reference anchor="RFC7595" target="https://www.rfc-editor.org/info/rfc7595" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7595.xml">
          <front>
            <title>Guidelines and Registration Procedures for URI Schemes</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <date month="June" year="2015"/>
            <abstract>
              <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes. It obsoletes RFC 4395.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="35"/>
          <seriesInfo name="RFC" value="7595"/>
          <seriesInfo name="DOI" value="10.17487/RFC7595"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/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="RFC8461" target="https://www.rfc-editor.org/info/rfc8461" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8461.xml">
          <front>
            <title>SMTP MTA Strict Transport Security (MTA-STS)</title>
            <author fullname="D. Margolis" initials="D." surname="Margolis"/>
            <author fullname="M. Risher" initials="M." surname="Risher"/>
            <author fullname="B. Ramakrishnan" initials="B." surname="Ramakrishnan"/>
            <author fullname="A. Brotman" initials="A." surname="Brotman"/>
            <author fullname="J. Jones" initials="J." surname="Jones"/>
            <date month="September" year="2018"/>
            <abstract>
              <t>SMTP MTA Strict Transport Security (MTA-STS) is a mechanism enabling mail service providers (SPs) to declare their ability to receive Transport Layer Security (TLS) secure SMTP connections and to specify whether sending SMTP servers should refuse to deliver to MX hosts that do not offer TLS with a trusted server certificate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8461"/>
          <seriesInfo name="DOI" value="10.17487/RFC8461"/>
        </reference>
        <reference anchor="RFC8552" target="https://www.rfc-editor.org/info/rfc8552" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="RFC8785" target="https://www.rfc-editor.org/info/rfc8785" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
          <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="RFC9421" target="https://www.rfc-editor.org/info/rfc9421" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9421.xml">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="RFC9460" target="https://www.rfc-editor.org/info/rfc9460" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9460.xml">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io">
          <front>
            <title>Model Context Protocol Specification</title>
            <author>
              <organization>Agentic AI Foundation</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7638" target="https://www.rfc-editor.org/info/rfc7638" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7638.xml">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="AGENT-AID" target="https://datatracker.ietf.org/doc/draft-nemethi-dawn-aid/">
          <front>
            <title>Agent Identity and Discovery (AID)</title>
            <author fullname="B. Nemethi">
              <organization>Open Agent Registry, Inc.</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DNS-AID" target="https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-dnsaid/">
          <front>
            <title>DNS for AI Discovery</title>
            <author fullname="J. Mozley">
              <organization>Infoblox, Inc.</organization>
            </author>
            <author fullname="N. Williams">
              <organization>Infoblox, Inc.</organization>
            </author>
            <author fullname="B. Sarikaya">
              <organization/>
            </author>
            <author fullname="R. Schott">
              <organization>Deutsche Telekom</organization>
            </author>
            <author fullname="J. Damick">
              <organization>Amazon</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="MDNS-AGENT" target="https://datatracker.ietf.org/doc/draft-jakab-dawn-agent-discovery-mdns/">
          <front>
            <title>Zero-Configuration Agent Discovery</title>
            <author fullname="L. Jakab">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="F. Brockners">
              <organization>Cisco Systems</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="MDNS-ARCHITECT" target="https://datatracker.ietf.org/doc/draft-yao-dawn-agent-discovery-architect/">
          <front>
            <title>Agent Discovery Architecture</title>
            <author fullname="J. Yao">
              <organization>CNNIC</organization>
            </author>
            <author fullname="G. Geng">
              <organization>Jinan University</organization>
            </author>
            <author fullname="M. Chen">
              <organization>China Mobile</organization>
            </author>
            <author fullname="H. Li">
              <organization>CNNIC</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="SAIP" target="https://datatracker.ietf.org/doc/draft-jovancevic-saip/">
          <front>
            <title>SAIP: Signed Agent Identity Protocol</title>
            <author fullname="S. Jovancevic">
              <organization>SKGO</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DNSDISC-01" target="https://datatracker.ietf.org/doc/html/draft-morrison-mcp-dns-discovery-01">
          <front>
            <title>Discovery of Model Context Protocol Servers via DNS TXT Records</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026" month="April"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-morrison-mcp-dns-discovery-01"/>
        </reference>
        <reference anchor="DNSDISC-02" target="https://datatracker.ietf.org/doc/html/draft-morrison-mcp-dns-discovery-02">
          <front>
            <title>Discovery of Model Context Protocol Servers via DNS TXT Records</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026" month="April"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-morrison-mcp-dns-discovery-02"/>
        </reference>
        <reference anchor="DOMAIN-SET" target="https://datatracker.ietf.org/doc/html/draft-barrett-dnsop-domain-set-00">
          <front>
            <title>The Domain Set Discovery Protocol (domain-set)</title>
            <author fullname="T. Barrett">
              <organization>EnCirca, Inc.</organization>
            </author>
            <author fullname="C. Schaub">
              <organization>EnCirca, Inc.</organization>
            </author>
            <author fullname="A. Barrett">
              <organization>EnCirca, Inc.</organization>
            </author>
            <author fullname="P. Kowalik">
              <organization>DENIC eG</organization>
            </author>
            <date year="2026" month="August"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-barrett-dnsop-domain-set-00"/>
        </reference>
        <reference anchor="RFC2606" target="https://www.rfc-editor.org/info/rfc2606" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2606.xml">
          <front>
            <title>Reserved Top Level DNS Names</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="A. Panitz" initials="A." surname="Panitz"/>
            <date month="June" year="1999"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion, a few top level domain names are reserved for use in private testing, as examples in documentation, and the like. In addition, a few second level domain names reserved for use as examples are documented. 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="32"/>
          <seriesInfo name="RFC" value="2606"/>
          <seriesInfo name="DOI" value="10.17487/RFC2606"/>
        </reference>
        <reference anchor="RFC6376" target="https://www.rfc-editor.org/info/rfc6376" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6376.xml">
          <front>
            <title>DomainKeys Identified Mail (DKIM) Signatures</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="T. Hansen" initials="T." role="editor" surname="Hansen"/>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <date month="September" year="2011"/>
            <abstract>
              <t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message. This can be an author's organization, an operational relay, or one of their agents. DKIM separates the question of the identity of the Signer of the message from the purported author of the message. Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key. Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t>
              <t>This memo obsoletes RFC 4871 and RFC 5672. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="76"/>
          <seriesInfo name="RFC" value="6376"/>
          <seriesInfo name="DOI" value="10.17487/RFC6376"/>
        </reference>
        <reference anchor="RFC6781" target="https://www.rfc-editor.org/info/rfc6781" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6781.xml">
          <front>
            <title>DNSSEC Operational Practices, Version 2</title>
            <author fullname="O. Kolkman" initials="O." surname="Kolkman"/>
            <author fullname="W. Mekking" initials="W." surname="Mekking"/>
            <author fullname="R. Gieben" initials="R." surname="Gieben"/>
            <date month="December" year="2012"/>
            <abstract>
              <t>This document describes a set of practices for operating the DNS with security extensions (DNSSEC). The target audience is zone administrators deploying DNSSEC.</t>
              <t>The document discusses operational aspects of using keys and signatures in the DNS. It discusses issues of key generation, key storage, signature generation, key rollover, and related policies.</t>
              <t>This document obsoletes RFC 4641, as it covers more operational ground and gives more up-to-date requirements with respect to key sizes and the DNSSEC operations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6781"/>
          <seriesInfo name="DOI" value="10.17487/RFC6781"/>
        </reference>
        <reference anchor="RFC9989" target="https://www.rfc-editor.org/info/rfc9989" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9989.xml">
          <front>
            <title>Domain-Based Message Authentication, Reporting, and Conformance (DMARC)</title>
            <author fullname="T. Herr" initials="T." role="editor" surname="Herr"/>
            <author fullname="J. Levine" initials="J." role="editor" surname="Levine"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document describes the Domain-based Message Authentication, Reporting, and Conformance (DMARC) protocol.</t>
              <t>DMARC permits the owner of an email's Author Domain to enable validation of the domain's use to indicate the Domain Owner's or Public Suffix Operator's message handling preference regarding failed validation and to request reports about the use of the domain name. Mail-receiving organizations can use this information when evaluating handling choices for incoming mail.</t>
              <t>This document obsoletes RFCs 7489 and 9091.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9989"/>
          <seriesInfo name="DOI" value="10.17487/RFC9989"/>
        </reference>
        <reference anchor="RFC7858" target="https://www.rfc-editor.org/info/rfc7858" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7858.xml">
          <front>
            <title>Specification for DNS over Transport Layer Security (TLS)</title>
            <author fullname="Z. Hu" initials="Z." surname="Hu"/>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <author fullname="J. Heidemann" initials="J." surname="Heidemann"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="D. Wessels" initials="D." surname="Wessels"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="May" year="2016"/>
            <abstract>
              <t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
              <t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7858"/>
          <seriesInfo name="DOI" value="10.17487/RFC7858"/>
        </reference>
        <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
          <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="RFC8484" target="https://www.rfc-editor.org/info/rfc8484" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8484.xml">
          <front>
            <title>DNS Queries over HTTPS (DoH)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8484"/>
          <seriesInfo name="DOI" value="10.17487/RFC8484"/>
        </reference>
        <reference anchor="RFC9083" target="https://www.rfc-editor.org/info/rfc9083" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9083.xml">
          <front>
            <title>JSON Responses for the Registration Data Access Protocol (RDAP)</title>
            <author fullname="S. Hollenbeck" initials="S." surname="Hollenbeck"/>
            <author fullname="A. Newton" initials="A." surname="Newton"/>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document describes JSON data structures representing registration information maintained by Regional Internet Registries (RIRs) and Domain Name Registries (DNRs). These data structures are used to form Registration Data Access Protocol (RDAP) query responses. This document obsoletes RFC 7483.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="95"/>
          <seriesInfo name="RFC" value="9083"/>
          <seriesInfo name="DOI" value="10.17487/RFC9083"/>
        </reference>
        <reference anchor="SEP-1649" target="https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649">
          <front>
            <title>MCP Server Cards</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SEP-1960" target="https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1960">
          <front>
            <title>.well-known/mcp Discovery Endpoint</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MORRISON-IFT" target="https://doi.org/10.6084/m9.figshare.31951383">
          <front>
            <title>Identity Field Theory: Toward a Physics of Being Known</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    

<section anchor="recognition-pseudocode">
      <name>Recognition Pseudocode</name>
      <t>The following pseudocode illustrates the combined recognition
procedure defined in <xref target="recognition"/>.  It is non-normative; the
normative procedure is the twelve-step algorithm in the body of
this document.</t>
      <artwork><![CDATA[
function recognise_envelope(handle, zone):
    # Step 1-2: Query + DNSSEC
    response = dns_query("_alter." + zone, type=TXT, prefer=DoH)
    if not response.ad_bit and not local_rrsig_validate(response):
        raise UnauthenticatedResponse

    # Step 3-5: Chunk reassembly + handle disambiguation + fields
    records = [parse_alter_record(rr) for rr in response.rrset]
    record = find(records, lambda r: r.h == handle)
    if record is None or record.v != "alter1":
        raise RecordNotFound
    for f in ["h", "pk", "ilr", "ts", "rev", "sig"]:
        if not hasattr(record, f):
            raise MalformedRecord

    # Step 6-7: Envelope reconstruction + JCS.  Keys are the TXT
    # field names; every value stays a string, ts included.
    alg = signature_alg_for_prefix(record.pk)   # Signature Algorithm
                                               # Registry
    envelope = {
        "v": record.v,
        "h": record.h,
        "pk": record.pk,
        "ilr": record.ilr,
        "ts": record.ts,
        "rev": record.rev,
        "caveats": [],
        "signature_alg": alg,
    }
    signing_input = jcs_canonicalise(envelope)

    # Step 8: signature verify under the derived algorithm
    if not signature_verify(alg, record.pk, record.sig,
                            signing_input):
        raise SignatureInvalid

    # Step 9: IdentityLog cross-ref. ADVISORY. Confirms the ROOT
    # was published; cannot confirm THIS envelope is under that
    # root, so a failure annotates and never aborts. See 12.3.
    ilr_root_seen = identitylog_root_published(record.ilr)

    # Step 10: DANE TLSA (if establishing MCP session)
    if establishing_mcp_session(zone):
        tlsa = dns_query("_443._tcp.mcp." + zone, type=TLSA)
        if not tlsa_matches_endpoint(tlsa, "mcp." + zone):
            raise TLSAFailure

    # Step 11: Caveats are OUT OF SCOPE for this document (Sec 10.3).
    # No transport and no vocabulary are specified, so the verified
    # envelope carries none and the signature is checked over [].
    caveats = []

    # Step 12: Revocation
    if identitylog_revocation_revealed(record.rev):
        raise EnvelopeRevoked

    return VerifiedEnvelope(record, caveats, ilr_root_seen)
]]></artwork>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>draft-morrison-mcp-dns-discovery-07 (September 2026):</t>
      <t>Tracks the current <xref target="AGENT-AID"/> revision and corrects the status
of the <tt>alter:</tt> URI scheme.  No change to any record defined here.</t>
      <ul spacing="normal">
        <li>
          <t>Stops describing the <tt>alter:</tt> URI scheme as provisionally
registered with IANA (<xref target="terminology"/>, <xref target="alter-uri"/>,
<xref target="alter-uri-scheme-registration"/>).  Revision 06 said it was,
and it was not.  Provisional registration is now requested.</t>
        </li>
        <li>
          <t>Moves the revision summary out of the Abstract.  This appendix
carries it in full.</t>
        </li>
        <li>
          <t>Names the revision that made each change in four sentences that
said "this revision" about revisions 05 and 06.</t>
        </li>
        <li>
          <t>Describes the <xref target="AGENT-AID"/> record in its <tt>aid2</tt> format, where
revision 06 still described <tt>aid1</tt>.  The endpoint-proof key is now an
unpadded base64url JWK <tt>x</tt> value with its JWK thumbprint <xref target="RFC7638"/> as
the signature <tt>keyid</tt>, and the <tt>i</tt> rotation identifier is gone.  <tt>aid1</tt>
stays valid through <xref target="AGENT-AID"/>'s compatibility window.</t>
        </li>
        <li>
          <t>Points the <xref target="AGENT-AID"/> reference at draft-nemethi-dawn-aid, the name
the document now carries.</t>
        </li>
      </ul>
      <t>draft-morrison-mcp-dns-discovery-06 (September 2026):</t>
      <t>Adds a key continuity rule for the <tt>_mcp</tt> record, the first
normative change since revision 05, and corrects two statements in
the revision 05 Implementation Status section.  No record format
changes and no field is added.</t>
      <ul spacing="normal">
        <li>
          <t>Adds <xref target="key-continuity"/>.  Every earlier revision described the
<tt>_mcp</tt> key binding as trust on first use with periodic
re-verification, and none said what a client does when the
re-verification disagrees.  A client following revision 05 that
had pinned a key would accept a different one on the next
connection, which is the case of a lapsed domain registered again
by someone else.  The new section covers a changed key under the
same epoch, an epoch that goes down, a declared rotation, and a
record that drops its <tt>pk</tt>.</t>
        </li>
        <li>
          <t>States that an epoch decrease is never a conformant publisher
state (<xref target="mcp-field-epoch"/>).  The earlier rules covered a claim
whose epoch is below or above the record's, and nothing covered the
record's own epoch going down, which is what a new registrant
publishing <tt>epoch=0</tt> over a pinned <tt>epoch=2</tt> looks like.</t>
        </li>
        <li>
          <t>Extends step 7b of <xref target="mcp-discovery-algorithm"/> to apply the rule,
and to verify against a pinned key where the record no longer
carries one.  The procedure's opening sentence no longer claims the
algorithm of <xref target="DNSDISC-01"/> unchanged.</t>
        </li>
        <li>
          <t>Adopts the graded change-of-control signals of <xref target="DOMAIN-SET"/>
Section 6.3 for the pinned binding (<xref target="key-continuity-control"/>),
and adds <xref target="DOMAIN-SET"/> and <xref target="RFC9083"/> as informative references.
<xref target="DOMAIN-SET"/> already specified a consumer-side rule for a lapsed
and re-registered domain, and this document had none.</t>
        </li>
        <li>
          <t>Keeps absence of a record distinct from revocation, and says the
difference from <xref target="DOMAIN-SET"/> Section 6.4 is deliberate
(<xref target="key-continuity-absence"/>).  That document treats removal of a
record as revocation.  This one does not, for the envelope record
since revision 03 and now for the pinned key binding, because
clearing a pin on absence would let one suppressed resolution
reset a client to first use.</t>
        </li>
        <li>
          <t>Adds <xref target="sec-change-of-control"/>, which states the change-of-control
exposure for all three records, and states for the <tt>_alter</tt> record
that this document specifies no pin and that a new registrant
passes every FATAL step of <xref target="recognition"/>.</t>
        </li>
        <li>
          <t>Records in <xref target="impl-status"/> that no implementation of the new rule
is claimed.</t>
        </li>
      </ul>
      <t>The two Implementation Status corrections, both of which understated
the deployment:</t>
      <ul spacing="normal">
        <li>
          <t>Corrects the DNSSEC statement.  Revision 05 said <tt>truealter.com</tt> was
not DNSSEC-signed and that the parent zone held no DS.  The zone was
signed nine days before revision 05 was filed and is signed today,
with a key-signing key and a zone-signing key at algorithm 13 and a
DS in the parent.  The consequence revision 05 drew from the
erroneous statement, that no Envelope Record could be relied upon in
this zone, is withdrawn with it.</t>
        </li>
        <li>
          <t>Records <tt>_org-alter.truealter.com</tt> as deployed.  Revision 05 recorded
it as NXDOMAIN, which was accurate when filed.  It has since been
provisioned and carries the field set named in the Implementation
Status section.</t>
        </li>
        <li>
          <t>The remaining statements of that section were re-checked against the
zone and against the code and are carried forward unchanged.  The
absent DANE TLSA pin, the absence of any conformant Envelope Record,
the two recognition steps on which the verifier still follows
revision 04, the absent federation and witness network, and the
absence of inclusion proofs all still hold.</t>
        </li>
      </ul>
      <t>draft-morrison-mcp-dns-discovery-05 (July 2026):</t>
      <t>Corrections to defects in -04, and the completion of a document that
had been claiming for two revisions to stand on its own while
deferring half of itself to documents it cited by the wrong section
number.  No new mechanism is introduced in this revision.</t>
      <ul spacing="normal">
        <li>
          <t>Restores the citation of <xref target="AGENT-AID"/>, which revision 01 carried and
revisions 02 through 04 lost.  It is the closest neighbour to the
<tt>_mcp</tt> record and it published its shape first, and a reader of both
documents should be told so by this one.  <xref target="related-work"/> also
distinguishes it from <xref target="DNS-AID"/>, a different draft with the same
acronym, and states how the two compose: <xref target="AGENT-AID"/> is intentionally
small and defers to protocol-specific mechanisms after discovery, and
this document is what its <tt>mcp</tt> protocol token defers to.</t>
        </li>
        <li>
          <t>Makes the stand-alone claim true.  All three record formats are now
given in full (<xref target="mcp-record"/>, <xref target="orgalter-record"/>,
<xref target="alter-record"/>), as are all three procedures (<xref target="mcp-discovery"/>,
<xref target="orgalter-bootstrap"/>, <xref target="recognition"/>) and the caching rules
(<xref target="caching"/>).  Revisions 03 and 04 incorporated the first two
records and their procedures by reference to revisions 01 and 02.
Nothing is incorporated by reference now, and no reader of this
document needs to fetch another one in the series.</t>
        </li>
        <li>
          <t>Separates the agent protocol family from the transport binding in
the <tt>_mcp</tt> record.  Revision 01 used <tt>proto</tt> for the transport.
<tt>proto</tt> now names the protocol family, <tt>transport</tt> names the
binding, and <tt>transport</tt> is the term because the Model Context
Protocol specification already calls this axis by that name.  The
alignment is with the neighbouring DNS agent-discovery drafts
(<xref target="related-work"/>), so an implementer reading two of them does not
have to hold two meanings for one key.</t>
        </li>
        <li>
          <t>States how to read an <tt>_mcp</tt> record published under revision 01
(<xref target="reading-legacy"/>), including the case revision 01 left
unusable.  A <tt>proto</tt> value that names neither the protocol family
nor a known transport causes the record to be SKIPPED, exactly as
revision 01 required, and is NOT read as a protocol family with the
default transport applied.  Widening the rule would newly accept
records no client could ever use.</t>
        </li>
        <li>
          <t>Reconciles the <tt>_mcp</tt> grammar with its prose.  The grammar admits
any token in <tt>proto</tt> and <tt>transport</tt>, because a resolver must parse
a revision 01 record before it can decide what to do with it.
Syntactic admissibility is not definition.  <tt>proto</tt> has exactly one
defined value and <tt>transport</tt> exactly three, the two sets are
disjoint, and so the claim that no value is defined for both fields
is now true, where in earlier drafting it was not.</t>
        </li>
        <li>
          <t>Corrects a grammar defect inherited from revision 02.  The
<tt>_org-alter</tt> record defined <tt>org</tt>, <tt>entity</tt> and <tt>entity-type</tt> over
<tt>1*VCHAR</tt>, which excludes the space, so the grammar could not
derive the values revision 02's own examples published.  A <tt>text-value</tt>
rule admitting SP, and excluding only the field separator, replaces
it (<xref target="orgalter-abnf"/>).  This is the first revision to carry that
format as its own normative text, so it is the first that had to be
able to derive its own examples.</t>
        </li>
        <li>
          <t>Stops every value rule in all three grammars from running past the
end of its own field.  <tt>unknown-field</tt> and <tt>https-uri</tt> were defined
over <tt>*VCHAR</tt>, and VCHAR includes the semicolon, so a single field
could derive the whole rest of the record and consume the fields
after it.  Two character classes replace it, because the two kinds
of value have different needs: <tt>qtext</tt> admits SP and excludes the
semicolon, for a human-readable name; <tt>uri-char</tt> excludes both, for
a URI, which carries no raw space and would otherwise run past its
own end.  A class that is right for a name is not thereby right for
a URI.</t>
        </li>
        <li>
          <t>States the exclusion that ABNF cannot express (<xref target="mcp-abnf"/>).
<tt>unknown-field</tt> matches only a field name this document does not
define, so a defined field whose value is malformed is a malformed
record and <bcp14>MUST</bcp14> be discarded, never re-read as an unknown field.
Without the rule the alternation swallows every defect it exists to
exclude, because <tt>token</tt> matches a defined name as readily as an
undefined one.  The split-on-semicolon parse in <xref target="mcp-discovery"/>
already behaved this way, so no implementation changes; the grammar
now says what the parser was always doing.</t>
        </li>
        <li>
          <t>Requires a publisher emitting <tt>transport</tt> to emit <tt>proto=mcp</tt> with
it (<xref target="reading-legacy"/>).  A revision 01 client ignores the
<tt>transport</tt> field it does not know and reads <tt>proto</tt>, so
<tt>transport=streamable-http; proto=sse</tt> was one record that resolved
to two different transports depending on which revision read it.</t>
        </li>
        <li>
          <t>Adds <xref target="related-work"/> and <xref target="why-txt"/>, which situate this document
against <xref target="DNS-AID"/>, <xref target="MDNS-AGENT"/>, <xref target="MDNS-ARCHITECT"/>, and <xref target="SAIP"/>, and
say why the payload here is carried in TXT rather than SVCB.</t>
        </li>
        <li>
          <t>Corrects the IANA registry table (<xref target="iana-labels"/>), which cited the
three labels to sections of revisions 01, 02 and 03, by numbers
that were wrong in any case.  Each label is now cited to the section
of this document that defines it.</t>
        </li>
        <li>
          <t>Rewrites <xref target="impl-status"/> (Implementation Status).  The -04 section was
false on four counts.  It claimed an <tt>_org-alter</tt> record that does
not resolve, a DANE TLSA pin that does not resolve, an envelope
record exercising the <xref target="alter-record"/> field set where the deployed
record carries none of those fields,
and a four-surface signed-tree-head witness federation, including
an on-chain anchor contract, none of which exists.  The section
now states only what is deployed, and states plainly what is not.</t>
        </li>
        <li>
          <t>Corrects <xref target="sec-substitution"/> defence (1).  The -04 text claimed that
<tt>ilr=</tt> defeats envelope substitution.  It does not.  <tt>ilr=</tt> is a
bare root with no inclusion proof, so a forged envelope naming
any genuinely witnessed root passes every specified check.  The
false claim is withdrawn and the limit is stated.</t>
        </li>
        <li>
          <t>Fixes the signing input of <xref target="signing-input"/>, which no third party could
have interoperated with.  The keys are now the TXT field names,
<tt>v</tt> is inside the signed object, and <tt>ts</tt> is a JSON string of the
wire digits rather than a JSON number.  The construction is now
normative and exhaustive.</t>
        </li>
        <li>
          <t>Derives <tt>signature_alg</tt> from the <tt>pk=</tt> algorithm prefix via the
registry of <xref target="sigalg-registry"/>, rather than injecting <tt>Ed25519</tt> as an
implicit constant into the signed bytes.  Taken alone this change
is byte-compatible, because for <tt>pk=ed25519:</tt> the derivation
yields the string the constant supplied.  The revision as a whole
is NOT byte-compatible: the signing-input repair above changes the
signed bytes deliberately, so an envelope signed under -04 does
not verify under -05.  No envelope signed under -04 exists.</t>
        </li>
        <li>
          <t>Relaxes the multi-string rule of <xref target="multistring"/>, which prohibited
splitting within a key-value pair and thereby made any field
longer than 255 octets unrepresentable in a TXT record.  Resolvers
already concatenate before parsing, so the prohibition bought
nothing and cost the ability to carry a large signature at all.</t>
        </li>
        <li>
          <t>Marks publication of a per-individual envelope in DNS as <bcp14>NOT
RECOMMENDED</bcp14> (<xref target="alter-applicability"/>).  A zone <bcp14>MUST NOT</bcp14> publish envelopes
for more than one handle at one
owner name, because a single query there returns the whole set,
which is a membership roll that no one listed in it can consent to
on behalf of the others.  The envelope format, its signing input
and its verification procedure are not implicated.</t>
        </li>
        <li>
          <t>Withdraws the IdentityLog witness federation, everywhere it was
asserted.  Revision 04 defined it in the terminology, required it
normatively in <xref target="field-ilr"/> and <xref target="identitylog"/>, made it fatal at step
9 of the recognition procedure, and named four witness surfaces
including an on-chain anchor contract.  None of those surfaces
exist.  The <tt>ilr=</tt> field is retained, so the wire format does not
break, but the cross-reference is now advisory and the document
states plainly what the field can and cannot establish.</t>
        </li>
        <li>
          <t>States, rather than papers over, the fact that a reader
implementing from this document alone cannot check revocation.
The surface that carries reveals is not specified here and is not
published anywhere fetchable.</t>
        </li>
        <li>
          <t>Repairs every internal cross-reference, and repairs the class
rather than the instances.  The -04 prose was written against an
older section numbering and never renumbered, so a reader
following a pointer to the Envelope Record landed on the DNSSEC
section.  Every reference to a section of this document is now a
symbolic anchor that cannot go stale under renumbering.  The only
literal section numbers that remain in the prose point into other
documents.</t>
        </li>
        <li>
          <t>Corrects all four references into <xref target="DNSDISC-01"/> and <xref target="DNSDISC-02"/>.
Every one of them named the wrong section.  The <tt>_mcp</tt> record
format is Section 5 of <xref target="DNSDISC-01"/> and was cited as Section 3;
its discovery procedure is Section 6 and was cited as Section 4.
The <tt>_org-alter</tt> record format is Section 6 of <xref target="DNSDISC-02"/> and
was cited as Section 4; its bootstrap procedure is Section 7 and
was cited as Section 6.  A reader who followed any of them
arrived at the wrong section of the right document.</t>
        </li>
        <li>
          <t>Restates the discovery procedure (<xref target="mcp-discovery"/>), the identity
bootstrap procedure (<xref target="orgalter-bootstrap"/>), and the caching
rules for both records (<xref target="caching"/>) in full.  Revisions 03 and 04
claimed to stand alone while deferring three procedures to
documents they cited incorrectly.  The record formats are restated
in full as well, so nothing at all is now incorporated by
reference, and both earlier revisions carry a reference entry,
which neither had.</t>
        </li>
        <li>
          <t>Gives the <tt>_alter</tt> record two ABNF grammars (<xref target="alter-abnf"/>), one
for publisher emission and one for resolver acceptance.  Revision
04 gave the publisher grammar alone, then required resolvers to
accept orderings that grammar cannot derive.  The field-cardinality
rule, which ABNF cannot express, is stated normatively beside it,
and the <tt>v</tt>-first rule is reconciled with the ordering freedom
rather than contradicting it.</t>
        </li>
        <li>
          <t>Reconciles <xref target="sec-key-consistency"/> with step 5 of
<xref target="orgalter-bootstrap"/>.  Revision 04 said the <tt>_mcp</tt> and
<tt>_org-alter</tt> keys <bcp14>MAY</bcp14> differ, while the bootstrap procedure it
incorporated by reference required them to MATCH and required a
wizard to refuse on mismatch.  The bootstrap rule stands.  The
envelope key of <xref target="alter-record"/> is the key that is genuinely
distinct, and it alone <bcp14>MAY</bcp14> differ from the other two.</t>
        </li>
        <li>
          <t>Removes two hand-written reference sections that duplicated the
generated ones and cited five documents with no reference entry.</t>
        </li>
        <li>
          <t>Corrects the field count throughout.  Seven fields are <bcp14>REQUIRED</bcp14>;
the -04 prose said five in three places.</t>
        </li>
      </ul>
      <t>draft-morrison-mcp-dns-discovery-03 (April 2026):</t>
      <t>Editorial corrections (retiring -02):</t>
      <ul spacing="normal">
        <li>
          <t>Removes the third-party-domain worked example used in -02 and
replaces all instances with <xref target="RFC2606"/> reserved example-domain
forms; no third-party operational domain appears in any
illustrative DNS record in this revision.</t>
        </li>
        <li>
          <t>Strips city and locality fields from the author front-matter
block, retaining only name, organisation, and email per editorial
policy.</t>
        </li>
      </ul>
      <t>Substantive additions:</t>
      <ul spacing="normal">
        <li>
          <t>Adds the <tt>_alter.&lt;domain&gt;</tt> Envelope Record (<xref target="alter-record"/>).</t>
        </li>
        <li>
          <t>Defines <tt>v</tt>, <tt>h</tt>, <tt>pk</tt>, <tt>ilr</tt>, <tt>ts</tt>, <tt>rev</tt>, <tt>sig</tt> fields for the
new record.</t>
        </li>
        <li>
          <t>Introduces a mandatory DNSSEC validation requirement for
<tt>_alter.&lt;domain&gt;</tt> responses (<xref target="dnssec"/>).</t>
        </li>
        <li>
          <t>Introduces a mandatory DANE TLSA <xref target="RFC6698"/> pin on the MCP
endpoint (<xref target="dane-tlsa"/>) for envelope-triggered MCP sessions.</t>
        </li>
        <li>
          <t>Adds the IdentityLog cross-reference requirement (<xref target="identitylog"/>).
Revision 05 withdraws it; see the -05 entry above.</t>
        </li>
        <li>
          <t>Adds a provisional <tt>alter:</tt> URI scheme cross-reference per
<xref target="RFC7595"/> (<xref target="alter-uri"/>).</t>
        </li>
        <li>
          <t>Adds the envelope recognition procedure (<xref target="recognition"/>), a
twelve-step algorithm.</t>
        </li>
        <li>
          <t>Adds IANA registration for <tt>_alter</tt> underscore-prefixed label
(<xref target="iana-labels"/>) and the independent <tt>v=alter1</tt> envelope version
namespace.</t>
        </li>
        <li>
          <t>Adds a Signature Algorithm Registry (<xref target="sigalg-registry"/>) with initial
value <tt>ed25519</tt>.</t>
        </li>
        <li>
          <t>Adds Security Considerations for DNSSEC downgrade, TLSA pin
rotation, envelope substitution, revocation opacity, clock skew,
cross-record key consistency, and passive-stream coupling.</t>
        </li>
        <li>
          <t>Adds Privacy Considerations for public handle disclosure, DNS
query metadata, and revocation unlinkability.</t>
        </li>
        <li>
          <t>Adds Examples for minimal envelope, multi-handle zone, full
~alter zone with all three records, and Instrument-tier handle.</t>
        </li>
        <li>
          <t>Adds Implementation Status entry for the envelope reference
implementation.</t>
        </li>
        <li>
          <t>Incorporated the v01 <tt>_mcp.&lt;domain&gt;</tt> and v02 <tt>_org-alter.&lt;domain&gt;</tt>
record specifications by reference, leaving them unchanged.
Revision 05 restates both in full; see the -05 entry above.</t>
        </li>
      </ul>
      <t>draft-morrison-mcp-dns-discovery-02 (April 2026):</t>
      <ul spacing="normal">
        <li>
          <t>Adds the <tt>_org-alter.&lt;domain&gt;</tt> Org-Identity Record.</t>
        </li>
        <li>
          <t>Defines <tt>org</tt>, <tt>entity</tt>, <tt>entity-type</tt>, <tt>founded</tt>, <tt>regions</tt>,
<tt>regulated</tt>, <tt>bootstrap</tt>, <tt>mcp-policy</tt>, <tt>epoch</tt>, <tt>pk</tt>, <tt>attest</tt>,
<tt>ext</tt> fields for the organisational record.</t>
        </li>
        <li>
          <t>Adds the Identity Bootstrap procedure.</t>
        </li>
        <li>
          <t>Adds IANA registration for <tt>_org-alter</tt> underscore-prefixed
label.</t>
        </li>
        <li>
          <t>Adds version tag <tt>v=alter1</tt> (org-alter namespace) and registry
namespace and framework token registries.</t>
        </li>
        <li>
          <t>Adds Examples for minimal, full, regulated (DISP), and
multi-regulator deployments.</t>
        </li>
        <li>
          <t>Adds Implementation Status entry for the orgalter_discover
reference library.</t>
        </li>
        <li>
          <t>v01 <tt>_mcp.&lt;domain&gt;</tt> record specification is incorporated by
reference and remains unchanged.</t>
        </li>
      </ul>
      <t>draft-morrison-mcp-dns-discovery-01 (April 2026):</t>
      <ul spacing="normal">
        <li>
          <t>Adds Identity Field Theory grounding for <tt>epoch</tt> and <tt>scope</tt>.</t>
        </li>
        <li>
          <t>Refines security considerations for identity assurance decay.</t>
        </li>
        <li>
          <t>Refines privacy considerations for scope as a privacy boundary.</t>
        </li>
        <li>
          <t>Adds Coexistence section with SEP-1959, AID, A2A.</t>
        </li>
        <li>
          <t>Adds Implementation Status section.</t>
        </li>
      </ul>
      <t>draft-morrison-mcp-dns-discovery-00 (April 2026):</t>
      <ul spacing="normal">
        <li>
          <t>Initial submission.</t>
        </li>
        <li>
          <t>Defines <tt>_mcp.&lt;domain&gt;</tt> TXT record format with ABNF grammar.</t>
        </li>
        <li>
          <t>Defines discovery procedure with HTTPS fallback.</t>
        </li>
        <li>
          <t>Defines <tt>pk</tt>, <tt>epoch</tt>, <tt>attest</tt>, <tt>scope</tt>, <tt>cap</tt>, <tt>priority</tt>,
<tt>ttl</tt>, and <tt>ext</tt> fields.</t>
        </li>
        <li>
          <t>Registers <tt>_mcp</tt> in the underscored DNS node name registry.</t>
        </li>
      </ul>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact fullname="Christopher Whiteside">
        <organization/>
        <address>
          <email>cwhiteside.engineering@gmail.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+S963bcxrIm+D+fAkOvXiY1VWWSulgXy+fQFGVzW6LUJGWf
3V5au1BVIInNKqAOgCJFe9nPMs8yTzbxxSUzgUJJ8naf6ek1e3UfiyggkciM
jOsXEcPh0DV5M8+eJlsv8npa3mTVXVJeJK/LWTZPDsuiyT40yduqbMppOU/O
soruqJObPE1enJwl5/9xnpxm07Ka1VsunUyq7IZGen34ln/1I265WTkt0gW9
ZlalF81wUVZVXpfFcDFdDmdFPZzZrcPdr90sbejO/d39R8PdJ8P9x25KFy7L
6u5pkhcXpatXk0Ve13lZnN8tM1ycZcuM/k/RuHxZPU2aalU3+7u7T3b3nUtX
zVVZPXVJMqT/nyQXq/lc5vLdPL3O6FNlLvxjWV2mRf5r2tDgT5ODeZNVyeus
ymd5WiRvm7vkVTPjG7NFms+fJhMM8e/0vizFvaNpuXBuSstW5ZNV0//awyt6
X1Mur2jsn6/yJqvzWRYPOr21q6OsuMyLjCZQXP77JX6VNxRltaA53mQY//Tl
4d7u/Yf6z/29vSf6zwe79++Hfz4I/7R7H9x/4G949OCx/vPhvr/30aMndvXr
/V3/z4dPbITHe1/bvY8fPNqzfz58uG///Pqx3fvkwf6e/+ejXfyTKOUpf7kR
4Sa6W2bT/CKf8r5s8RNhW3XfaLsuiQLyaXJwnLwsV8WM75bh0+oya54mV02z
rJ9+9dUCr5nKW5b6klFe8r2B+pwDubVX+utH93kZDr4/OjkfHhy/aM+fp5Ac
gxRzopa0mIVTkGzT7Tt9s49IcpScZIusucrDh0UE+YbIXD6Tjt0lUVF1N0iO
i+mo9yvpS9KmSqfXRJh51lyMaLCv6CR+JYewkBcNZ+ltMUzz2Vfdz09wite/
EUeblgXLHJ3w9a8a6n/j7/vbiM7br/Pszv/W/sBjWvDJvPwQfVX/QCej5Od8
Ps/TRf1Xh6I1P0ur/Dq9Sz9y1yndNb0qm2bD615kq6aeXmXJeTbPrumQfnQR
XqSLfHq9YaiDRfrrBsL9xJYueG1vdWHAWUvmr/27+5q3F4Tc3uD/kVXlkM7g
RX65qnhOSnN/ertfjZK/pdfpZMOHHmK85OyubjK/jX3DvBwl31Xl9Log2fPZ
Q/3Jpfsn5qlnAR8biaQFreDG5Ts9/OH4/OjwvI8PhKN/UE3B06fNqsr+xFn5
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
dvXhMCfporTU7FVtzouxMXXFh7u0jiDekrbBRHfw3cnL5HvJOVCiSyfFhRKc
UlKQv0kf3qNGERVA70iIA7TOtztGgShvDKKL3/eLVg1/3zrSsj5Kb4ELSJG3
594VdW872Xq2lZy9VW6+4+wX+9/zZOsGru29LUmFT5Lop1U1H8rVr4Rb+788
m7QrLln73/La387Rff8XaQ4feUx0CH8zU3A0C5W/m59vmjBpMlf8v1cFF/2T
v50L3+YXgi4935ISd0BBuviT9RYJBWzpasjmddeCbvOX6Nbws+71deu9POo1
3Yccm2Tr6VZAbLl42fRWvkR37917cfz98bkLa+lHo0t0A36Y1jeutZxyg1zC
K+U33BYvs97Gl+gu+Qk3dVZfFkQuRVMKG+CnRJeiG8Ku+BvoUmvpW5vFtwj6
ZYvuuvefMEOd83eHYaw8Id1E14co0+DsH2G9/9uH/b3h/QOiif/24f7h8Ouj
NSp6lrBfkAHjB2eHx8fEuD5YqTqcqG168rsdddKOep4/YLCuWXCISaW3EuwU
G3i20DoRsLM4z3Z9DHGozTNodKBN5S31beqFouqmrD7CTOSliQbhj939kx+r
n9X/zYO+iXLwSpmcmI6Wv6u48oKmxS5LOQPrQ2hEmwtulAUAv/xOuRJ/sbFS
UgT4xLQ+disTJ/+WC7BH+22PmOHBq7c/YCmYDum/W8Mt/N9/bBFnjI60PsEk
5zrn11/XAxa9HVeETMF3B1vRhR0X/p20hg9n0K7rldZIrWs7rvVnNJg/qv4l
cqU1Vnxpx8V/6SKicFbNC2NKgPxFK7RYNvh3D9vdqhG8IlrhWy2ogz90GaNv
/7wNYcVo3OIEY7Fs6ES9OXn1d2+kFALp7PNNOJGaoD1IUzjqCqj97Hyv6T9b
XE+GJ0fkroCXOttSnEXm+BBY5RGGHYofL3YI+p4hXv+Jp+bIiDJNJp2QUjqI
zi4rMJNMytFoFpVljmvmN0oMoGyZd/JalSo/qt0tFOrNeeTZ1xd35q52XE0x
hyr36uWb09dHL3zKppihPBeEg7jeELQ1NaLS2q2VVrAb667FO6ZTFyXkC6SX
zSZHPJG5QPw+ZJGRWsoViwR3aVyN7a0OAYzcz2rlCpZoNVc/8JxLebI9cNti
GpKIBwt1ypW7buljbivkP3E0UXhc9pSn/dwEyAcU+vXaxvOHYx2Ud0lmZjIq
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
c58gR6vAHkMBOUn2REQYLeyDwSp1cTmNwgNEXd7+fjgG8fGKMrIVeHl89OpF
nDcitUWnjB9lZEOMNnM9IcWfDl69O5IO8fLhfYCy2o4eY5QYoKaxypDiI2yz
9SMdtw0R8Q14b/rK7zSbJImySWT46Kh7GK3W/NE3kl5saODJCp032f+utV7H
XH1hfyy0yBU4hmeS6HNYFvD/FHGRE5Znkgj0OzcE66/VAe5iFSdopvsPHyZw
yzOgG74AmEIkRzWjyBc/ibJX1wQIkmMh0Wgsx2MNYqLxR5aYcmPlhn0NkO4b
a86T490FAWvFkdMXB+cHgwjT1GpfNvWrQba6xRK4MKqPJdwf3adlPNKVZYee
yn/5TplrXKRFdwHJnr5Ay7ZLrCbGsyTOCe088CzZwp3L6+cWKHlVFpffcVzk
XTU/krCHd/P/BAH7A9MlPyeFHO4/S9r2gxmqA7VEn4nW/5zV64FPq3aaHv2W
GYzyoWiJpOlvd9mTnmV3vOyG84xZSl/5Es9c9MVdKJb4ArsEJpm8UcGXSBda
L3zk2zvE5Y/Wm4pBgne7gXykCFJPq7K1Okj7Ai/LrStaXAfJp1cIM9OUinaf
IUnmXS9P5KfZqVHUO6e/WKYoao7xecWKouX+MyWLMP//5RWLDtSBwLqsb/S2
lsgVtWfi+miF66cyvW/bqkszoC2kNexoutLHnw5V2Pqn4bwe1j++dI0AycU/
qajzqRcIqEpVaa0NfxcKm1WrolCJ7OepxfenGVcgLFuFgf9y6SepcsA9geWY
0KsuscvekrbWvP9y5SZGshRZiBWqMabBn3Gs0XXqNPnT9/+JYk0dlvUnijVx
qSZ+dq1Y03PeaF/1SKir8yccfBvLJl3Aq5bN/DPa+ij+eyV5hptGmBhf9s+A
MypH2fRQuy5UVDCqXQRq/bnNdZ3CQoRlo2soxISnZAtbK6Q3yTW6z3ePQDGm
9YeidfRP8cX2K9orKq/Qa3QjQptDnPG7LEUrh3i15V69pvMhskQBpu426I1y
jW69QD4JMkH57u6W4G5/rVVuaW2r6M5wDfWu5Ecp5dItS9VXl6pb5epjZa66
Jao21ajq1o36nMJRvZWj/A77t00KrjuTTuW/WS7/nV7Jf6qS/zvP8qigjd9r
K2cjo7dLMH26ANNfK7+0Vnwpsj7jlldibgZsbHsMNtMlkeynwx8OTqXVEFzq
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
wkY8HJxKzU0oplu29l0cS2tC0nEbaW3SzF6WqgJUjJWNbQs4+ajp7zvPPPJK
SlmGNvIuODkkdGOVHnqaOXf7gz2AKuXqBtA6bSUcobTWd5AbSh0USQ9oK8qm
ZSUkuIrDiQSRewRXEVkwnQ5Qm1pFqcMkqrgY2lANi3JIjw+1AVX9rajLHWGm
jMkCZMKVwlQ1wqtV8K0BFvqq0RJB2ZOT6BfQsvPquBquH66WOsgMQms1wWz5
Kg3xxsCgddtNOe2YrsQ1zr6Ajd63RXSZ9ui7zrJ4K3OWX2YKNyvWjN7EMl8i
H6EW1+emwnlTaKuPKBDCVCzCNgoDu34fHCfDDD0WPIlKT7PqIzkNSepQUhtL
jeNUcmMW0vnSJp1bKE3H5wNDY/x8fP7Di9ODn098SdhsHjVflc+TcE4joeWy
yqy1n9kTFrwXfCTPLY73CNVkM2sXjsyCrm4VVOAqm9+hsq20GdR0yHo1odPW
rHTBfvvNorA0VKfpi8xLCv525jfQOrV1Nh3GI2IE9Bn1TVO40RHOowXkrPh4
3Uc6DRSLoxCA7QELhW4vsS6WcoJMji4UcIA4dYC09YK42LjsTlgWEonT66S+
zm4HzlcEFJQPTLSV7wet59d2ReNCUZKpVTf2s+e+SDGCRYMJBnuJdbzEAxrB
4w1HxMkMnOGiWpJv4M74Uftyn6wvOUaI9PJDmgofWyKJZmkPBeaZN/IOdfl5
tDU6IkatDVV/9W1dg8rL9eej5kg+i7ZXQ6TLn8chRMNbd0mNXNS/Cmfk4kIs
ShSnobmlc0t384+Y9RNxnGfJasksFA8MVDcKh42BpLOs0q5a1xKsa+lIV2VR
rip7rxKaqgRjeijWNZ2ZFpzumEVQt6edmXocWRCbgkVwqdWRRh9APgLIP2vi
NcJRMSWfjnS7x2SnVC5HDyRw3rEE0joac+QOJq3O3oaYQmiu3V2SbbgFwKXF
BakfEhR+JoWRwgfKike9faQUv/UYyS/7iIYu9xHNusDSplxiYQ1jWp4F5Y0P
hg/pRrJNjQLE0MOTRmguWGi044yt+voxF60+XzveHtITvZFRz4XA82N8nPpk
sAFmcC/nK+5o6z+LNOjLsUI3NiDs1vUIM3sjrJ3rxdrJ60ivev32/O9dfOPH
oIDSWkE/Fj5BMVrU1pBpyWR8tf102ri1tQp5Wtoy0GrNrPHIqOoBNM8m9Qff
ZHo2rzN2DihFvWv5DdSiF5vPN49Sj1m3m0rrZHPt8k94EbbXfQg7wYLy7ZWx
EW0HH8STaXOxMucJSGb/jCT49CqGL0floNbP4pKhkdkQgi96ZnJnafzagUgx
mSFOziufp0XKPhBaRH8c0Lszclr89kV7f9RVxifK725M9VxegusgGa7b/6qn
rE0L2YcrEq3m+C2SNuzaIKA3OSsujKtBQoVho7SrCBf0UB03gj8Z/ki6DHKC
jzbFkwrzibaiVrO/82poR9KwdcTdV7kiuWelp6c95c85V82H4xMJx6P16gut
gdc+7+GArx1tS7hBb70k0e+0ffQ9WpMD/9zpx/G2IFLOWuNDa+bNaDQaq2Fg
INvkTo4PazTqtVFzbMw9Xw9tO9cZoK70QO0e3Qn2VWikABMQXemDscULe1/a
eOwE05eyLT89TvvrLqHe5FkamXB0E5lmSBTFP3+TeMjWzdbTZOubm2+3NECy
dcUXrsKF5TVfWV6HS2Ts8DX6b7jY1HytqcMlOvh8jf4bLuqU6Idf3tu11uT5
Ef20b1GzP/ldJ88fgYPm/eFGdiEcUEv1LdKYU0m3vaMTfLeoDS4RyCbvKJiD
ZAzmTyosChvOzPNoxowsOCudGEP0zliLkDnQOyZEMQsL4LDHQRLzBWko78QQ
XkUNkifMSSDqNMjAFxr3RKW8mTeezwpgTj1o+QF7SCK/owi6IN5yLknbbe/B
2DuxAtaQ+no9APZhzGEQSTyO4fXqKuZAO2PlwJ/VN65p3Hiww168tub5YyJZ
CsJc7Ws0WICvD4cnkq4eRCg8TDUIeOAmvsO1yOaaWy5Lct0ivc78WMF3TdtG
JrBvhrmuOjIde/SKKLYMx7pLbnYfJPN0es1O5gcjhvFGWpRs9prWdSaQTPNb
C/8ILxFveGDrmz3iqn/IbRggDvmI8IdOO5+vRCyq+NG9ExNDjU48HRL5eWlG
7uHIwIrw6aFaxF3DHBLdJ/N6fWO808Xzdj4KrD8hoNBky2Tfd1L0WT7s5tSq
EC3JyVBC7obccuW4oBmvu3JaTXBNq4wmTq+Hy5yVfUtbbn9Fj13pkSFE1v6k
Csc3Jzm8OatCaUsqwU4Epws8L3YE/MHdZkSGVY9rXdOwiyGqnNDrb1Hg1stE
M7ycorM0PuaDEbVRNVsAbMyKTwaaY4/JxNHCoJ23Y4bSqCPOYtBQr6W2gyUR
m36uAQQLmylhoV1nK37kovjR054jCHeHZPv0R5FYs2yJ249n6K0l5nU8lr0p
eZ6UutB/F7XW6k3Zk50IKXug2pvdfddKv2sl8NW9GXyxOqv9mtv5ecl6fl6f
Kezz5RjOH+saVbZcVej+CMURRiX36Guu+tPmhDifxaPwO7iqIV3jn11UZ9N0
tQAVXdO5W82YTjP0Fl2gjtlvX7S7MP2sqNrMkwKqgNjJs75J+N1jzdd0U8GO
4wj5dKdWW6O9ByFPoPI1ILTbEilkz5Kx0xI60BEmWXObZYWWA2iyrtLrkcDy
N1c2YWBHBDQki0jG902D2oNE8Xxx0cqYqVNgPQ8cdY1K+Ms5rV7rDw8i8Eef
eau1UEi6X0b2rxgKuv3rsce4CRLjW9asAPajqI3Q4iXWf8Sp/cy9D/NJhXTA
7XxEL2sYSC9eT35mJ/nu6OWb0yNrnGTczsnSiQDUCKc07NZmqcHzUCkKvRu2
54xWybmgbwze7t++mBVEilO19Rj6HuVMpUVPRlCkscXtupwMP1QW58Muu/fv
vx/YPx+8l53WPx++H7mDVg9H6YLpIyxo2Ki8XarYnJ6eHX8v5abgf7rQCgYa
assEpD5dVbXUibHd5PgfvsiXY9FYo/8YyS7g19LUAeC09eIXh3JN0kovE4Fw
8MJtH7QyWFBpbSeZ5KZgJNZ1kkFZUiXL+r01q4l2Y6f9OaO/fN3RbRQJ0T9o
xQTBgsgRnMRptmBWGvLhndb2GiQRQD3UWdyJmiius/nOfq53efZfIIGKdHot
SPWGPh9f6krVFsR3zEUGdaNa0Smu5xAKGOeFs6UtLodYjGRBip64BvykyomG
Jy3ZdVXoU5Lg6FhtsDzW8KD5llZFO8MIlAIoAC/6OcebMJdGdOpbNEtkewWa
y2WVkp50s5qjiJ5K2W0Jlfif4RTSHO9OGMkXZKTt3phXhzodTGZAeER5aVxN
B59k7lOm2G4TKHixP9Y/qvbF68xdJYbXhPYQmoJru73knJFAV0neSYn7PM8X
CuKh4pqeHvr41ic0Vx55cVv6Lr6cShPeJrXl/glf0YWZqTKupgYnLw5OjlDS
6iB5C1n7xSwtsmEzr1PlZO1aTNoO3aOiI3+8JzTpeifF+l0Yvi+D+NGjJ4/f
+3wWcY3Iq76sASC4WCu2RR9+tmINzvfwOy4uSuMEUc66vpSbe/kC9VGusqUe
P3hwf/SPhqiBKSLKQMbz36xq4o7fJt9Iw6uyon8yPBEnDR60b3u6i8T/+waT
H0Zt5IfYER8Hj/uGoaYcwtZcEOvevXc182UOLt+7l4zvj5NtrObw6GiH1A6V
kfTwUGsRRMvkEi3dBugB7xRJsEPubpBDSUMtR4XhB92COU/2AQk4uXid9BzW
9OhQHo1YuMUOx3s0sbc/Hv8HJsaFoRiw0A9B5Ad27YHzgx0ulLtvn4YLJlCS
iHWhdpyALciyI8tsktZ56OMbBajsQb8oIKKRLOiZbmG0ppj6GU0lWtBe6mIn
hqT4RbRohYdqcRlUN0bEpJKxnqU6OIpPGattI7T8lHhNuLtc9IIdraZNA0hR
21UTtoRBuBfcQZ0OphL7MiTy6ke/jom1++USXIQv3m5jrzA2hN7Jvz/c29+R
+JpWxcP2dBAXMCOsL4EPh6vWA/ahddBYJY7bdsph+wpONSiI/zQHirIW82N1
OMtF1rB2OkviNXXRcR9oHsnEWg7Tb6E/O9QJK6odactIZ75Af06wdLATplCO
JkZET/+PX6RICIW56bvbQovLCUgBLB8XZ3s/WhLnl8seI2348jKqANqzCqL0
Wttv1/b7rbx6xYrRalIrhbQ2QnqKCuLELINY4WHHXuoLYEU6VNLu8cxzc5G2
oOA2kn2ydvZY0Jv4ckf+7nAGXSkIAF45ZQMdZUBrk0qjZVpa0YEyqW/CAldy
7iDYYhzNISNcTn007LcvYoiHhmeQjrJWumtDO0mPYXFdrNNngnoYwZOFLuOB
C5eSNDrJJO37Y+AeSJCAGrPETq9EfBbaR1LuFO2jji/Og75AxfNKfW86ESKo
6kJaAEXIIDTP3oQMwpWIsvqBQi4GCh03+k57V4vk2JMhb4cR7PslSaIt8bCM
U7YMq6OrzL4JKVR6RxsDZ+vPuEX3XCE9a5CjgeVcLGkcIluWzF3P3tV6H92b
PLs1EiICYzbO4f9qYXKEjzYIwfs2dS5aR8MepUO4kqIdvkVTew6xR5xDE1oI
S0bz74pKODgOC0irlrzZhKGyVpo9kC0UkoxAW+wg5H2LzGVW3mhprrhRRrqa
5VzZ48o87zQG6aGo7H4hMRXRqeuS/X++vTQtrBmRIn7hyxVAe/InsFZ8Ljza
qn/9BP+hsBPGdgwkjjCVMGm94uKZJKTp1XPp14CiILLQqTUX4zR/PUd+0VsI
M01MNRSMh40aRNSSzsWcqkMtcKZmzi5xbKPN6Qn6QrxQ6nCFVuimD7NPRHK4
rRSR7zagE6G9NmUb+8XukgYlO2JHOhLxZ7omhWcHztebshhkCwzSiTYZJi/V
EAMdXfkOqY2ctj2cWtBzZPndoR4WSEA+nlmZWjURhw344pASxae01SxDvjsa
WPlNCIsxRbjW6VEQ0LUVwfDUI7AnKbIYl+eGhCYtrb4qwoXgZJEqohHOSTQE
EyHEJFFEBGMAOuWlEz6G5YOghrhQpEA7Dmx9vaM3qlgQywZJVlN/O+ATujqC
jtWl0DOnp1peVpuLIGx1OyOtiStCFXe3HunN88KJZg2Oz3q8+sRpV7WyYKcx
uDkH5OL6TT6gyR8QFa9Nk8t0aY2YPGbDmi35gBvzPC8/QlZdXHd7mS5ZA4Oj
hFUJyWp4OuYWbhp8W1cpxLlER1Xg2McHJwfDyLeNZ7WWih/Pl7hMuX0HVFJ4
Ip2tP7sqPObey+z6afD+DKWMLg8vN6Io94fZ5XCRA+7x6uwHvTpIfiYhhbod
oRXVQTGrynwmTVXQxxUT23FkrxCNxwha9f5HxUQiFI7fk2JmvrLaCb61W5Bk
kEDJ5lCg6tkYSqpIjqNy1mO/BsEpHhett0wV1oEi1A74PBa1FqSQOU+/fvik
5btX4bbi/tbR45Nyhpi1bJMUBBiEmp1a6hR+QkNCWjQmimOHvhKBc7fvdoLx
0+gk82stRTtHPjqocjXREl20QqCkuJICh7Vbx1lOLd/HFmHdSHgyJJSknvlE
NqJ0u1G90Zk5J4b2RR51drI4qxH7reYmeLnGOldWuLjrgNFdItQk0Z34KNVt
LzGbv77wSLvE7LoHefu339TjbgVHgqtJHUoO93h31u87YjN1LNQ7JT61jQbW
lwDWD1srTiqB8QFJuOUQHCvwiq8hDm3y4liLq9Em3/ly828ttoUEMh/oqtUK
aaxalt0zybiwMsvXGAJmQSQi5RPV12kKCyfFT1YL7qAjxkeI3QSeHeMB+8p7
rBkTpDWbzdeYH0OSz7g+7Dk0a/bc+UKAC+gAVq5T0CyS7tyu16iC4TatXfZh
KZhlInox8wPVDyKQtf9eCEt5KZEZa9Isrm+5eVHte0icqKbKZ8J35OsgJInr
WJoCLzQzubq1F9aR0xeHwecw2XJyInKatVjp75oM0OkrbyUcWzFOTlxa1Bk3
B+PmJthyrdvoiciTzdM15/VvX+DNvn6tVUpVfEXYfXXHiElugEPNjZpaVIDu
cBI76vH2ykfPrMPBcbP+kvLC/UKn9cXx2eFwd+/9wAhG1QRdMPi+gOX4esJY
9Q/a0kuVRs+KGPHAkBh1q5n1H2WoJusFr0dOat+Ie5xBIxzAEF5ruTrHDDjp
LF4LsRnC0CjdVIfyZB5ElLyp8ksg0eOmD3LNyTVeISmqT59BX8pxz5m1MYgr
VPkcOOA9VhyAlh4HvpbYQFW1WoqVpsh/ms2YwW+PV7Rt/64tfdEdYqyoRDeO
L4JZcr3mbe+Li37+CjbaRx7UihTb4z8++21cU27CqZfaZFMKFnqK6e6Ap6Xf
GUF6794JziMC+Fw67FDgckwRrdW3crsBhYSD/BQOeiL0rJqmdRaiqfcf3NcQ
qhDY8YuTg/3d3cey6dIcyKsegoOTFoCW/QpAm1SW4GRRWCr7mG2AekrxQbAl
nvhbKYQqxofWSMVBHlseBpBO9qmz9rcNZHUl7sinv+Sfvx0h1fY+3vvf+W10
9Phlx6g9rvVbZR5R2Mue1UKrApZV6IVwhy/rxPIV2H/UDQRHnWgF9YAhpPkZ
zfiHZJshbA8eo8ZSiUvncunrxw8f0yU0iJEeWjI5eVq6SJHQ1n8O+behFdWW
AOEDfKuoFpFSKHFV+nIGgaaj5E1BZtnR6emb01A70XpnBGQekgqw3SJymFE8
HPEQExniP168eX1wfMJU3BrvV9L2Ng2kISEe7nGyLfoF1F6ovDsy/pTHPzs6
/enlwfErhmGTul6utAi+8mgBwAOgLKisD/SZ0uRJ34ERy4sLnl/3Sx7Tmx5i
tQSDbXFSUAeazHJhErZEXxycH4TkcVnKp7aQhxFyA+7xdeSGIlEYhYGh/AKe
MdqCPycMMvMJW4qW2nq2NbY6K9AQ6NcFHMX6hZZGLP5G4nhyMOleQb0xH+Vv
sTxMWV1GCN4FB1grUb5OrB8xpNhFyJ6wQjDaR9o80NopAT+M0DUEK8CrobZN
gGRjvD5wmC+3oC/4aNEFrY/SU3iBnszWv228quZRXpUazy0ES2pECZtmal0a
BAria/j7xbAKJoPWQugQfjkegbjOEGRBgeAqB9e+Ux7NZRB5ieQdFp9ms0jj
MlAQBVyvz45ZPaynmcSDtTwXmHdtLmor+HVq8e4LXhM4SvwUrAltoxXHQ60v
mvTXyqPR16V9FkJ5Fz8QP+SPwpFPRU05pBS6w8SlrYNH12+N7XkgUDodAaCm
hx3F9qBjLPMC7kBoO3GviyDvdDiTDCK/etp+8FoNglVutQ4kwq6jxGDX6M3W
Vg4lfUtT1DuhDxmg1c7jjWE/BpHd3n0wesTOWzQ/zltnxwGfAUtx/5178Fmg
gRSh63wZCU7ITtSIis/qFCkkDby+6lAPePXJnSxbaAEoXMaqnsiI8F3w9SG6
yUyxprrRoZmJH1Nbs7BLtLXjtfdHihMFrxAjso63n0Y++/H4bfRBFs3kT83l
PEdMHs9G39w6hDpCtB2+K1Vz1QpBhtTAsDrRFDDZO61xp/zv+MKPMZZR5/mv
2TiKsLKrPAPTC001PPvwhqtxs+OL+CSh95YfiHFQg498tH0ojWHsmLkMY2E5
Rwqe2j7J+Jj1iJZolsq02vqJfxpOOKc0fAWtMRumKp+8Cm0qVasjG9HvV2JK
DcFDpQ0bJ8zRo7+cHb0d7j168OQ9C+9PjtR58Mmj3ffCrm320arb9/pkzmi/
ecXix3SNwzdecewun2czw2MFO8iXtjJT+KNRUq63s1hyT8CiNCdOFPuTQpBK
/60m2VFI2WUfSP8Ezrtb3FjBJoZYxeTEbLZgQJ/b5WnSD/SK+rL4hi8dUzqs
w+TOo2TjrmjtZBXptYT2hNADgveS0baij3AftTlHSZflkhtsdWwY3+aKreiN
RncSjO7994Ng6wb727Xs77YJvP7lf8oOZijaev9mWVpNO5xkxmtbfRK7PYlD
ayXflcWwbT2GY8+816xHsYv695zU349YS8oG39CDnqBOTb6wrXd8IW3BBwIa
Zg4NRDwPanrimN6MJucywphFnv7BqBz8ps3F8U9tE63/1DZxFvJsd5fjzEle
NPs2X/KapmoEc85uLOnTatlQ6/TV6vjXGhPgI8kinbPZEYFKkOg8JLMWCUe0
xSTeL5JL7pQs3grJVZUme6xEhW5aZrbSEoYGSxL/9u3AxAeIyax366QVBrvC
qMyq6UN/ijFWdh+tCOtqEW4rUnnweLdv5+sMyPbOGNL1dMB9S8N3ca6F84I+
bMjaJpwKCrj/W5KcNQ4c/O5c2WXJKjSLifxC2IO6oz07ZvLz1rHEIgP5PFfd
JOopOKb1Iz5PppZ2vw39e1l1YicGrYekBrTpwZo/jkwxxh5GLQ29oles9SAf
GOBb5XZMuL75snYgZeQIOh/KeqOAEyaaWZ4mfAZadp1YS8ZJ4tovUlVszGtj
H8VB56s6rZvlBcafpe2GvqSJECz1xq7Oph9ru8R2Y+ekr7Ezo1RYbTZVqdPT
OZy8+Z3FDoOue87x/ridG2KK8/ROHdnxnhrfUGYbjFLDqUQHOHTF5B6PLSYN
DBZ9V0UTsc+FXVeT9oBJaru5uDPorXbawubO0w9SzFvnpUNIjtDSH+Uo7qcm
DVY8QXlMdB+N2vuxu0MiswIT6LjKmS+LQGgkM4h7r3jdx3mtO1jh5rnvb8TH
KAVeJlxmP5Y1kInNHH5d3JWP4YfSykCxiMwByNybctK+1pJLvRtOQRFoNSku
VfGGL7Rt+jM7VEoBbWqOeE7UJAr1gPL2Pgt/t+C/NMUj/k6n/a5LMyMD4Kjd
KR0GYSTxIFI0SRoEa9JbEtoBtwPI+BQxuixfMIRLoqrvvtUf7g94AxwLYa6l
cFFzTaibxNi99a+WkCYxqKjHDKuxKqATXzLbd3ek1WZfjq8ZErIut7kxpri8
k3E6KZ7C6d3eDD2O/+kJjz5OU3KsNGlndncm7286rh7PN1S+ROEDrzsHq9jf
zTqIuKJjmrMVJOOLuFZa5YguA7bHSoo1PpD0YQ1USz1XW0JiuJehYXFEex8j
JM9UlIcGBhEzH5nBhfT4YntG0q/YgfNWWqRGeowIWt5RznttYuysF8cQ0KYD
xbJHUm3aUhsIFSQsDKc5h4KDk9FTWi0tRKxNuJhuqqe+BKsanhKHOizpkbMG
gNtelXUKxw9+/p0bzyd9zZSxS3dZ0+qS0tueURFLnODE2DoWYMrOO5uUtADP
HEZNObTtal1uNjfAYpbaW1mVWWv7J3Io/Go6LpNvWl/X3pHUsRHo7OdVWRjs
2WsPIM8LmoeLZpPobFrz1zOl2iaU91mVXjSRsHDqMex0hI660/siDuqSqNv6
mZuXpTSNbXfSMpR0y6RcNydjW7XfjkJ5UjahgKeVnEGLDrcqbUr3G3U0D7y0
6dZ8PrD6q0//+Eae/jYCDbl6pT3j8GxPijrITKpnaWsprZEgQw18wTuxxoWt
+y+ygO6DRDJl4h7DVmcWnd6strf8ylAVhIblFYYtvBIQaPtXwbhJLRwJ59PK
CBdTDo85rKZXMWzJjg6j5YgeuYxhjHTnd6yrOgIGBYxY+1qJaxgBBO40JIcs
6hWl5XjTor4VELd0wPqeA+YCVGjvdhuAGhY1blkCZ1WNYpNWrAFLXCd7QImU
q8ur5LH407Hwe7tMDi8Pzg9ePfV4bAaA3Gkh3UUizlCWwdEiBExCO9OCXeha
+7F2q0KhXTM/kSeDZE9y3Pb2+e0HL346Pntz+ndYi6Bmn7lH9lytLdI4Egcw
dfLd0fHJ98m7k4PvXh0l52+St0enKI2enP9w9DraCpuza005dOVpU7FSacXc
OvUyiAjBzbMUicQBuCw61i2XOzlI3r45Oz4//umI95hDTk0SIWukYl2o/Lfg
PoWDaAf2Q2t2y/GcIE71lCdpSEfnId2SepyxHsP7FmhQcle2ddxn3ZqUO6MW
8n+B7EqtP4gnRIRrrRpPSDKj1PU1XtFVMyiWdpxS9sjDx3gsogVeXwV6BTfL
mjMF8cU4/Nzq84ng2zspsIKYscaJOf4SapGWybsXb796eF/jCVFbNegqWYoC
k5n5Y9ZgYjyhll9A8545m80DtxTVrtllpKRciZxoYrBuC3LGDeVYWeGbNH8X
Fm0nWflWTBUJNXBqDpk2WgElZO36nRhIFRZRSOgLebpDn+kUpeB1Un2j2Ahb
5SAg87EcXq2KaxwJLZZgOAof2O0ryoWUeuY7z9iqYf8WKhpETdLXina1ovNx
v0/dCcl36xcNQe3ulxFeIorbuyhtCL194L+ZrUAp1654G3u/bZkh/A0T2S5e
ETl0tsc3cMRd4f+QNTdguP9YakENpJ7lQGrH7AQnDzhuMCS5eZRCDdvlMdij
E2qwK3o6SeIq6mzIHMWJ5QGUz5/03Sqfd5g3lzmxLiNpLXZVt6qq7zA3EBwj
Q0s2VVqTZsVJYoXWmOetLIDmGyd3aySqso56LNNODSOJtXSrHdGNHdtQrKjN
NSk1kGO1r2MuJWc/BBZ9WUwZxuJeeANeHJcmWtW+WGoopo0cHaKBzWftCfsz
o0yvbmHlbZOPnBQzL8meqoRZ78h6CNkoT9a+U5+bWeRtRB7kM1KLQkZR0k2I
wRDs8WExVEZh1x4tSRNjoAJl8EgVmjggdlanXLOGxblIs4lwn4Xls4csNUh8
ItZEZrsjBZ/1ZgDtdFofs/TieUAK8tnmxDTwYk0miRWHWdnNHoOE22Xp4gHG
HQHzcw+uuJP5yq6tcch65Ywhy8FkFgQtckMOpnrCnfrX4tR2TqrtzWEXn++l
yT0k0uP5Vh4smzuq7XTA0kLmUaKsEvkeS/tDOeiJ1oXm3Xnz7jx58zI5O3zz
9iikb5qPWyj8XD2/ITPqcxvKB08QD9DtKs/AN80G6Wsrb/40WUMf6ZZ+8oDd
oS7m/1PctzbHcR1Zfq9fUUt/MDDuhvm2RA43giYhCyOL4hKQPTMOBlFAF4Ay
G92YroZA2JZ/+948JzNv3qoCqZnYiJUjaLIf1VX3kTcfJ88paOuiZxm7aXQW
xs00uWeoNMeNsKbAvq6YVtYHC5spwB8GnL1j24pLkEOPMImBZcdu1g5tv0Oh
tiN/nyx6XgkX8qYnuRcy6suzSGFhFouwek6Bk2bDdpEFT0q7XJZqjbSrhnSl
4Wlij6AESPJ9NIQC/uUtHBExHBWRLrpFMgCyCuHuvRt2hbmB3R3k9ib6wDiP
X+oFQ517uaVq65FZEVuFMd6hH+HsLqx3anAjKQd1ra25TPrNWR7Q8CZu/udf
CmtCOBFmEU93d5RjDPUDenuhTbu5YElFpqloHZta6LyXMmYixR+uAYlRJVZE
jKSa2xLy/YJ2N1pKtruNGt0GlOQHh7kdLwxf5VUEWK274tshY/nF+gZWBf16
2dg6IxLauuJhZgGxNpYgAGMgh0WyEwJ13sOD+7uVPJNCNdI3X755LQeeLyR8
8QJthqS9kvFa9x3yYM46cHTRejZclivHGTIwGjI+G62gVy/fUAEBK6gaL/bJ
1RMwR/1MhWhCWyWu/MPvBce6f1isyxjHjp2GUVfll3ML1raqOaq+giSXxqGA
T2aP4pxBVUGahPMeo5PMcIiBJwiMLRvD9nLQft4V/lpba9m7ukL+B9dyDTgl
VqqKT2IT+TIaMJlQzEaOxh5RrlJkQsg6rPa5HBRz2Tv5Bs6Rv1Ya1Zy5GSd4
WCJa5JiUGSNjoaezDl4qhMZCcdvnJubtjXStzDGqObnpxKF3diyxEZmtmf+9
XiUh3SZTyd9/dcq/mQQ0OFot2+utSQUmjIm4Ai3z4D1y1V+Ez/AwijI+aFta
tdwsFbEKamxzg9OaKuGs+EhAtscc/6AwOXOiDM1r81uIQMj4bNGkguErV6ex
0qD6kci6HP1xrzz9hgDM7XZ5bJJe9ssSS7ATB1+yX7Jb0Se330PVx9T75gW9
DUqMDA1D6dYIS+wOBc0uBfS9qoSAiRVSPKBSIpsvzaak3GO6QAUGbN+jUfOP
RBgta1chmyKxTRXwLBmH2IfKI5e+Y7bEwCA2S0d6t150p5VcM5oaqzjSJ/2z
1e70KQHa0NFotqMvS9rkfNOajEqWnUHsmp0jtJyNO590dU2gnWa+FXS0Tlq7
6nAxVaPFJGV8Z8mzGkzuayLULa+1CjxkTQC4ST0Khwkrd310yxZ8Jkt6OV1j
WD22z2izqIu5tjNXGkzdnv6ZDH6ynCv7JEkEvQKkSaUZxOPaq/XpxbGVN6l9
Q5xGU9kMo0Z2vhGAiqBTlsjcuISf8DjHGczkQHey1X15Cow8IE/BgINWzlLs
CRm8oVraVaP4JmYuZbtdr5aqy3pr5OjWdBjykLib3thQZAAtvTAgjJTBb9Ch
ufmpVUD+iC+xQn4CmzLTZ5SDRcex94Qn6MyFHmKzZQ1Q1Fh2ToiP06NFMTT5
2dJ3Hj29f99EnmcV9i6cOdkwl400VqPtqLlMF+5UkuB0TYIeaczCnpI8kJwG
lk7ybHM/US9DDzppQzNHSVuNqSrYBzHMXmSmkuR8w10QFJDRNVRTjjd9iF0r
ngP+wqXtDQzmAUtCc0v2A3ub85AOfHFvWdb8Lq2FV7mj8u+/GtiTojc4e7P3
nya3plvYUah2zZZOYXurO2xv7zQMuJK7mycyIE34pDxM5sSUIGxsjTsrXIpx
RO+vluOAOjFqUy6O2gFlrCfeBAoM+biHeYpHt6pp1ZnOfBAEyRIvh4ff+kEK
LqIlbgPfxSkmrSGVKBNk8gljWe798VftDUg8JlpA9Le2G0gjNoOmkTMopESO
mmKTEfQz7Kggk/agz1DTvcfpDiubyBxAmbUceRXW9A1DLynls4aU7+KmC7vd
He0gCyYCkGzCKhUUgGJZro27e9jwfLY2xHBXtM0UvXPomiJBdlvlAm76W9v9
ZKcrHKwuVEBz8ZX+JJtrulVl/UNIfx1Ksi7NzoxpOwyKFRhsM+G+dMnoLVkg
JbFlnJLcuv2zVbL25ZLsW2XqQ+9UlkX+Obk2/gV9zRTHbiXJLpffiZONj5gq
stAUCYNYH1S1Gj2ACTdjYBSwbO3GJGB6dd4dp9bo6SO9lWlTEMK+8PIX8+Ph
OuJOr13Ec2l+rbYJCym4n9J6ANbeeqt5lfPGuaprNEwjB3r/uBxrPyMxhgbX
iSM4SGanQ2ApUXD4GHBprm4gAdLqfHvh3AhO45hGRM/zZLdQ7kze8S3AqVr4
wekGnCaMcLc1wo++cNS1Hiy/m7l/wt3MHL+d+0N1UUUhbxPrk09+7BYW0yGf
jQlxUbpyRIpcG/Nisv70rtZZYt1uI9wvC+N92b5aZkSdVoDrH2613HguVdWN
dp7UY/PFMlZpwfjQxrs+DTezIuhrr9xPbdyji9DUxZW1Iny/60M1w7fb6pQd
LH32QmUUjBJUd5q8pLxl4l32Vs2SQ449pw2fTmF6/NjEQvZBxEK0cYyDeNc6
nhoie5ZylB5PjNJFdy4LIo6T0S35TdszI5s7vPGQ2ZbNfVdznyL9WP+S+zfy
M38CHMUsNLErmk9Z7g9DTfJ+xWUb3SVuXsjDbNXd0ImJpgc1+DOQ3F+BfJG+
SyBzMjIA4aczLJkln3SW3C6jSUJK7xuNK24u1qxeqAnAQyhzscXCXvfMgPKC
iweRuc7q1vXMnSsDpgaLab4+m+sPsbaw7KdIM+wzPhU14Qw6zm6IrLyeT8CJ
JVL2rzegAndTE+fnFXVsDZNsBodDp0HKSvFfC2uAmzjZrFD+BkJirKWanxGq
DgsDZXsuQlh/xQOUIiEsIyBvN0WVwkFkrjFpYzFa7to64fykE223dzTczui8
ghJFl9/ANwidTT979wECr8u1Mw97D7giCRrJ+2PxrPWAl/EZuJgxGa7zvZAE
4FqSd4zKVKMaLtHDWf1IiJCe8uTTZmv/ImVomkILyUklhDUEsbPutFklSMiV
hEEqpVO0GyKBebbVxRExxFYZMJowaw69tC4xlec86IX9pw6VomGQM1eSR2Ft
KxNR2bHEjRD6t1qbSot7LpknQoZlPWCeWE3zRDgKvuxBFXdXiSM+vwR08J39
UxL37s5WE2V6eU8ftdQytUmySAOuV+UOQ1pN/XVrMuXdVM+m5QzyIveYS8xE
ydIiLbT2sGrAdJt0xeao8grdG7Rhoh6yXmn5Pz/JfH2VTg70vhNga0kVR5PY
nGX+P2GeOCGEGG6YfUXr8U2vSfq/WQVTGLbQ6YZtEQoBFh03WM7NeUuYJ422
1ExPEf/D001R0RpMFmjomNWXEtMyvSVtemUlBbG8d37mG640V8K4lveqMbki
fSU1IVw1RpYobdK6BLBgAIfVI1aa80SJbONZDQl9N5oz8gYc/qRRRluUVrFU
IrCqItcpRF4Wps+0CnBNvJKfnObMV9bWgfi5i5pZcgsY2xUeKH2CVGBsvwFE
g4ODk72Jk2qATaMK+Qt36vxw/+i95Xi501OQJ3diJIFP9x7b+nZJ4Kj0G8SA
eQ5EGYbFus5I0b+uT5g/otcwlzEKPIar2BaJW8jhknHBijypPFWrIhuK9o6G
iPhUZUPTvLntR6tSDRIKpuF8EhzXKpv6+jHzbSaf7Yzk+LnzNYKbG+C8xOS+
cn/jlfobh+pvjEyuORus3PC4N/xNxg6Abli9Nv1tF7JyV408WsUH1Zlbtdkn
A1w+d2ZFn6Xi0Kh3igN16GelWwNzneB10gfiEqrycnkEejRnidsUFSkRpmtk
D0DrxNoAqzKmVPTH0tIRRQZwsb5i1vzSbZQ6VGFWo3H+ovtoPc6DDFBsaDKb
9u71y7cA6n19/yvhzbJ6Cx+12jo4BASxYyk4uKi6Cl0y8DLq3mpm5ZVym5Oa
0gjbcoRmeq2qTguReykqLsz1R6RB2+3eOk6VmbrxaaJlM1sqQgu2rfYSa6BW
e7Zv4Sxu4hcq4Ty9HKyHW/cjBUghlyhymROxXKbU0dxTPsQhmqLuux5/OrFM
kKQzmcUosRJDX4oG/IKuUEcqI6UQkle8mYFBqe9jeSxElP3nQkWPTJ1dk8A6
886aIKvVDGx+ZWgM9TG1v5uGvTGHufBF0tm0lJ42dlEgI/ZHicUs87Te9O7l
65JIG+u0VRphHS2WGIFssQt6akN1vxisi7iXHXNhlzD8Q1xrJu0S0qU/tWg9
VooNieZpm2NjArvmeslxEZHS2f0k35o1xjQVydNLP9ttnNQfC386dM1pQ7XO
3kCguAzecB6jSAYVQUeD4Ln09YtVcOJc0ItIiVB696OFuGiTo54OYK3XWAbm
SGB3Z4CPDSZxa+9o2QJOhlbkiAJFOpGJQ3epZlN3iSWV1vzK29dAmM59KdtW
5dlPlmupzUylMaqX+bctSOcSTz7TT0SobrHautXYrJKjscJ99A1QGwhtxH/M
3qCFBpixmVpBsyt2T1VOJyl8hOVJOGj4ZMHlOcJr7VXxqLKeXPduqW5ICCST
XllL6yCQY1d34/B+Je4SOY5fFRzHooGu76RTfudwmgmZLlkUymqgK0NGfNkF
Lvo+YFzO1RNvqfcCKEgAApPqLqlU2Rvy2uXIcIdBf4zOyGW6E1matxN0NVSj
tB6QzAoDupNqyP5vSqyeF9ctUxRqTUFN/LnKPXDp+jwF9BvHnKvCWlpdmKgh
s9I1MKDWBb7IyCxsISkeX6a5WrYn609cwtLgcdWzmjtThJMrtlXQTjbv37id
Y3BgrtsygolMz0J/2zQvbwHmCmJ8d+rhiRSerN6XryWCPlOWv7v076RapKYm
1MKzzpwYKau8H2uVGGAxHUVyq9bfHX732/88/E7UZpfA2u70bUtZst999eA9
oquT5CPM09LdsHwD5jzUvu1LuyykuoDaO7PVWExR/Wy4ijLWGicq11JUWyNz
SQVlBiiDezed6DQUg0A7IeX7TB2iypvm9FoGNmLHNdNnbw14R9B8i/2vSHFR
XUx/SJu/NL4ZJzAs4Q2o5REjwUwCfNWdBm0mr9ZH3asHqr8l9vsneM9ZVItO
hQpPIZugulrPa1Njq+97Jqwu1K9yVj6b9T+ugwLDHw9JOEoVVspo9KW6V9ux
kW0lu6q4tl8jK06BhwCsF7iIHbGXFrlXTtWS/P1G+WUU5Upwq8qjMCJlZMY1
4QxQeb9lDe6T5NhYZxmeSgXPYs/yYeiPUKtXtEwA1+q2Rzlu5cxDxEsH+Nds
dQ8Jb1iFzUknx1m4N5Ojzw3MJsKDRmbUwT2bhClG5puyE85BY1Iqfa7Muhav
ZFxmYt6facwQW25UmcRbAdQm++hLqI9Uq6ELZ5b23YSeEYkrSCIuAD5mwUCB
Dn8ldpfoCVmrrE8cVy0hENcyvyQ1uo+TYt0M1NSuNOOvek80zGIJbQSabZGk
4Qfgiso9rjeb6ytN+Upzz2UniSXhPldIInFs3vGWQQyFx0BXS7sm0rcHrTlK
5Ax5GLQYaYt47NdJk7+9MNHdAEKWpTNsVdIWJVzqpunLIRBWCQUtj74X5IwG
YkY6BGI0wxqTX/CGdpf4KtXJdUiTHw8Okdqzfj7mudByCRad0B8hnQJXRnp0
3q6ukwMDDcXwQHhMFTmD48DeMvRCydGki92Jz/a8X4YgKcUSy6/Qtln3Utk4
lNPnxqlSsubF+X0Zd4LNdtZbIa7GV7ffNHJTp5ryaxZW4T8lxY0YPANVuwK0
dpRJGwBgd6pPtVaXdiiR9DB29XlPjCcCvJcvt8v4IVrF/qLy4LQLMtETrZ54
XGYk5AKwE+rd+SmhKSqoSgnOCcy26CYsr4ZptwtOXgltKEsZu0jis7Dbp+l8
rlPriWC4k0Mc2a75oWmRdAvhwU12sjsvSNboymL0gv96tUG4lb7dXArSEcBO
BcXkrmfyzSJCy00wmXiM10ijIbzlp936uuem8WAQaLaMJUFmJHw4byCaOAxh
jXTZ9fnFVlvndh7sYm/sPNwl3Uy3Dbd/0W0WcyZjBssoHYOh9PMDywN6Bk7U
DYB3s09L5+LZmaNBeUp7X6j3sCjbTjiEZhZqbmJpLheBZLGceP+x5ZQrdEeG
9CcccQRIl1IACjRQz92qZv+3YpVnssKTT0PZLmUR4ZnSfVQTNY16B/Q2WswY
lzLSnMUyxm7lZYzmlJ9A8fDumsYIwezFuJ9zDcPCVS/7YE9r7lNT4CEFaqhC
djXx3AY0ZZz/1y4GwEA740co9iOWsuR8YlWXqFvd/9UOlqM2xM236/lJO9fE
+m62Q2ytwzbt0rIWhB43+VzsA4BRVNcqFteoo9FNFE3abZ3lteBDdrl4sPh8
u5eBHl1nSc5nCf+gxrYYynN1vt1Vl4spIKhVIROR25YDinWYw0YZSoWB9MEd
Ct0Gdu0r4I4vVQIp3AYfswoV4i3OYsAOud9fIbFz+DEFNCA93PYvjlXhU/4q
i7e94jpK3+nF9iHa0faiZ3FvqcRxh6YbPaikX6i5loacW2uzzAqvVD9VX++S
wZV4bfVZe1NdJIdEMk2KUtbcqUWXNwaT34WBC3genJgVo+FTPJ042ZZemZ+m
P0GBZc05/XDZVKERdm2tPVt25iBLT5iasF6Iz8dhGgBXKs2y5PNfGdiKviyd
AtVGQ5CpGGOjh1PjOySNE0FOrGQZBGggWSlth1t8VrBdzYxL5HhXIoEgOUen
T7at8ykp+nmCfRxPRFo+1wg39NzC6BDtHmVUb2JdLyBEZxomDgMD4pIDi0ym
nBJ42aJjk0s6PzJDX17cAAnfoVektovQWHkiLPbQ9+FPaa1Pznfo/Hnyu9DW
1j6vtIboGYHK6Qld5AlW5J9DWxSO97J7ykNy1HiSwfz+5dGrb9VUOXFVaaeq
zKeZCbiuYq+JsYHyztcR7ldFZIgDjW9VM9Y1ZyVpXugAFfSLDdgaNOsg6t0R
5Po5FsYqHxg+KYMpMBftECSg6Qyebyn4kwkQPefaVDkMXt6WpIeacvHXrq43
wq49UywDWkJIhlgpuiQvK1JlySA4/EHsG5czrTXmRmG3yAkO2h4GiJImFtdP
2u2NdOqGZ0dlVcNPDXnYFixteZEtgvhURI17bggGbuRFE70W8SrQjZPtBTm3
quDiF+SRcpzQhRY6YuqQEcYw91ryor1arm9VrVSR6JkqcczNmTGFWWmvYu3C
l4SVHe1MGYBVFU8zIGKqYhWcbXd+a4N+evM8dBRsaWirQcYkxnPYI0w4Aaja
+gQ5RV9FTUhrxtI7VuSAG/0CaHTSkluDp8BbkvPOD9lY+mp9fSW+IsBnfojo
cOCgkyoJkt5pTck5KaSwmAml+Z2zRbUCXw1OL60UCRWusOyetvPkqp6jGWG7
6U4kd6347bs6sQYa2g7TxNgC/YcwV/RvKVvZoWc1kyW7smisj9Cnv0yDvdD6
jaZQ2UPW53D65e/ffFO1K8ELcG0hsFeKm7wsCIXpzZQZMKsQzj7Sy01kNkiv
UR2rJg3Bk/ULcjLX917cq//lv7btJyFFzlvGcnt5MCscohL0nNwO5IHpag4V
a2J2NkuQVwd/ePPDu/2BQk4xgJtMl+0xEywrb7OCLT/hWOKIzeDH1/t/PPj+
4Gj/3Sx3667K3zIqw/4mUxr37WV3ul6uVQk8yBvYIQpvrdN0rv522bfkn/51
j5IyS5CuPrgaNHUVdt6j2dgtga2e9gWk4LwUlidEybm7PlARZqHlgdWusLFq
A8wY2N07Pkzvt4skHUHiO51tN2uMDLplT1sDb2hizYkmvEWV9QXWtsqlp4fV
gBRbmUy0zx3LeEBuop19dX9lBfu++1SXtFq9nTKykJCdmdVXy2vmhkyzc0h1
xVb5aR4rSxxiLCqVO3+5ChtD5yjCKnjia7rwxzeHac3vv9a5qcYnar4Ugg1c
qQgQ8ZOLKdrDDnpTvXcKu0C4c4bOBjfWSOFQ4nvO8waeLiBBBVgSrXGAjMhi
ZjO7iO/d6mY0xTaJiLQ2ggKLmmuuN2YjJBnJKe1PrUpQbAbmuty+bLr+o1IE
TIg1GxeAYc7kugbQYHgxwr6nAIOakI4KL8JqUOP0itmA6LpySrMeT2SUIsUC
9l9hAuBU2lMeqIz5zBiS3t1tQJM6k2CO6CSrwtm3V9txgwA85bIGc2sndxE1
FWYnzH5fGcCpv2iu2tyGnp7h6qq1FDTcggHEEw+cPK9lZXdapPjoPSwXCtn5
RiFqA6z0hEqVusZaqYktEHTFCYPSBGpAmfy6Z8cNgoJhIw2ytXjSynY2QIa4
5LkkUaRcPAMAp7fmhNwWoBk5acVPo9JsOCymaQUDSXmXKfiH4rtob666lTGN
IeYocT7FmQf0l7oYrnR0UwW+9TFRwsoaSZQuQSu6Why05hkli4Dj0DFbO9nO
cncGEiSyuFWHdhWTXHBQz0K9zskKJrnaKkvyGYyqaIDy8Cgww4XOPUjSTXF9
ESNMXAtGbbitmhWTRs1qULc0qmEmERolpnd4DBOL5HMJbD8E7OO4Kiotd3As
y0kvqe/lbe6UHt6JJz0jM7Ig9ZR/OGQhyEupKpyxB87H8mBLWp98np9db7bu
X5QFQHoyPGXNstygraYfH0q5i1GgQG/1PBghgfSgECCQfeb/Hw7oLStVSlIq
AsvLdRq2tqre5grFOFwQ7c3eGcIl9PQK9wwaTxZ4ZsZIvF7H6jTLkPLqRBaS
54u8GSoTAvWomQo1Qhmx+cjLE/23CXyHVQphJFCxAAY3rXpVTP7fHYn4sQ8r
YEElavZ8JF+voP2tbSDtNSpYBueD3P46HBbihGBBI5QrOA/8+pAVQSyorL5T
2Qon12wDY3pAtuIFKpAo6zcCM3w5WJ1Sg/MIRDRI22Z5WTQH53P0zgjxeY3X
V5YuPU+eZ7UDC4eM7LEqVkiG/7I9Tna9lUTDmZH4zhGfFNzV600lpmazSMFS
O2fiVaxwCzUS/ET9X9frzTWh3vo6f86oayvU3HfRpLHebOMPuDWVVRKAK3uG
g1MJlO+N4cd36FBxV2J1N2B4L26OQv3Z6xdrXcIqGTzgCussY9GP+uN0144A
IpW2RvKmnZbIvc/eNLADCYETPMIGPKsG7Eq/XKkYGlO/hIFaU+6FdRIPltUX
mTl53mThfkv7ttImEmUe8d6jFIGkPZ/ecuB8dQ4SdiYkf0KJd56VKkSDKq1M
qJWelSOph8GoDPrjatmtPuqW04wlkUhlslJp+VCj7IUzYJsrU89DPbcKirHw
fpZrJViJhSxhEFKL5XTjadV3pySDywVV2Tjp/mSpmDQF5Jdc6YQGr0UgHOlW
wDEkXx1U0YacwqwgkzGEP365hlkAFYxdjlVcxQrGr/9aoXFttezOWis81Qcv
37wcH31ds5JtlCbgR1nQKfqRnS578M160dZvxLAVDSf8ypya4qY/6F6OMhf1
/DUBNWaZpPQ+vCQ6/NW9+IOy3P6wXJ9gzR5KCDa4if6eI+mrjP/AmYoN8uTJ
w/exXaOu98nWITrmBFp1KzuDg182y9SYxIwD8eNRhnIgs2fUMPpWRqngeqXB
/YdwkR/dpiX9j/rDmx9e79dvXn6/X9fpn++cXPmz//2j+sfc/st/m/rn3f+l
a6CIj+tZYKOXH2hFOUWET1y+j+IaQb/lH7HW8rkLDa+h37f7+PIFcI1YqDjO
8wgywKyQko2J0+j5XFdw6r/wc3sQWL5slmWklD5mv12Zdvg3r2pZZrmjg63A
4nah/f9wK9BsuYeXWEqiJVKQZcnPigbM87hrDwSDtGq389eQhxHjynxIxWfW
jp7YhA5ltR4Wfn5N4TRJzaHyU2yN5DMsLpvNKcqRl9tm3pMWnktjJ9/R7mxY
ntO3K75NE63iLcf1j+8O0ia9aAe2YWgMBvTi/fDmcR0QLMspPBh9+y1hY8B5
9+TrJ++9+fGRhmCiFVp+92S9wMykQE7L82m1wBqZLsDydlR/Tpa0VVcz+inO
EwYGN+lEFEB7HAYFj9HqjJBso7WNA9RWbAEZLxGxfxISunQD78zkDUbW8kEo
D+tnt825qMYrNb93w9zlNs4K3nY9mt0ZWN7OCX1MVzV49bREqae/vyHWQG8H
0gS8mYcstJ20t+vVYjcyy63XQtcH/8KBXf+ckqqVEubl9UqcCLmUjQMDd6Xd
WGfD3Jf7ba/6EegWdBTKVj/YP/rGcSASaABhISITTDdId7h5MHOfr4G3yiwC
wQpC0JDcxkZNhY5B5SpsnF4Ran2JpxvOb73jRV8LNR/u0gR+fno/Oyni3hk+
PV8XqTfvI2QcaxoWnWbrbSDNNdO7fOOqcr/gxlV6G4KasqHbqF6XjaiPkayY
5mR1PKuOm9MVBGk7/N8p1C2SMZH/W7bd8a6f5iI3cv+ht5HJc1a5fI6b/8YF
Po9QTPof3HmQDh3Ihco9i4glhDe2zUZuvm0A/7jorppG/nK+uMIL/fr0IT7X
rx/+7v79B/r3xw/x9/S9XpBL6Xe/kneaq03/+QetBw966EjTrEDsD/v3X6Xg
ulmez23cR55bNCk2AJDV4MmQvi5/tSvnpZ2miYmFuCa/YCQqv44hktJFHj/G
g18u54u+mT99kp7eqTs8EZjOtLzd7d77Mfmk1ufMKQCPd/5VkwnpjDcl57rL
TiGIRa+369M1COtsS9T7jCx7HUTzHVXyFLQs80wurHEorFIh1Cb5boJ4UPsP
NfT+tF01m26teuHfpxkRw7VfZgMPmQPXVNGOJAze7b/64fvv99+83n+9K9Ex
svISshLXqlnzAc5Ds4q57C75otg9NRRGelZV//znP6txnL1HnsuDN/AAd6q6
vmc263l98eKfAqtNsdk9eSMtLl06z/51/99ffv/2j/vzdAuSgH/08PeQtn/6
+Hqz/N/6eUFk+wcDaHAuWavpr2z7Fw9+9/DrBw8fPX7yVF+TSNIvM8hkTV9F
1r5/Q2957vW5+dPH8Tv3ql2MTfUS0oX6smmrmoG1/nUxv91yeU33BUSlb5Eu
xKmnXzJ41FQGz4LgRSfiv1oeefp4Lmox1QQKPTli6wW5iuBWPX76+KvsVj2x
1Ex1JeVcwF3S8vtPWUTf6iL6XngTr3zZpR0cK8Kh3Q1PuqtbxB4YhwvTpgVZ
dWjCQN0ilITqpvrp/uPwG4J3NXA6e52DUsyBI40aB9Ns1+qhqdfI2hKSrkLR
z+DU8385K5n7hFEbbyEI5MlA1g40iPghjRCFxNSEBO09UuX3FVPyWS0wb04v
azkQLyRTeva0kfAW5e0VGApO2otmeVYgl4iHmpgNVHXAmbVjIdFSFz7U2qps
P4MsljPZZv2r6Z2ffJBy50/u+rTh9/b27v03v3yyPvmffvW02ayXeyfrbb4A
t2YArkBzMaf6juX3jmHzwo8cR9XISglt3r1TDyPFINwiO7Lnj1DnVPP+fKr+
ZAt00lZnEujr1cp4KEfS5nbWdhsw01xtBPJ+lU6IkSkfAVZtBgWXWVhu/JfH
Mb2fRjHZrhcX2+1V/+y3vx1847dpOrLzWVxqPBvpgy/01BQ/+Hk9NZ1+G59b
Rfeqz6dSioMl/crzWg4O/OXLX00HBj4phwT+Iraft1poGI2eVnotH9UP0v/+
NVmXZJGltt9ffez+N5fc0frcdWb7Vqs1JLg18nhBvmYWNpZaqtPmiuamax1q
vMtVtWyTR6c6y+h+ECd1DX36fmtiWNVfrzddL1lMhtzi6zA6C7G+XrD0CsqC
3zGH/1i+6F+y1sfcRqzlZNklsVW4rDRqvwIATJI5BcE9ejLWpG9njr7QQQ39
ydx1B0B3yb/nR+LDfMYJWtUvD7Bz+Hkvolq57Pifp6fzY3UK/8euTbqGfnou
kofLsZdTLsa7l5o6EOEJCzQuHQLW+Mr2Mfxu7Y6q9Xp7T2V82xlzlVtIB0HH
hkDeSt6wn30eMA4h6yYefh8Kb5SFkulTcWRLQueSgpM6If8Vy4+50RhYhyrf
Nf0GAVExmS1ZM5hKPYtxw/uaoFVk/x+ovWyZbn4FNaNI2JtNpYoLSxFkyOhs
nNDaZQNxF4SBHKhkY9O3ZhKjzbRE/MhYBQKBbmMRSZXR/rkURKVKqPhJzCEi
1ZkrGhg43RtIzDmWn9IG3TZSrzyyan8j+2kulkKE7xXq25h6ZUWSWbM5pjjI
yr7fGBMGZYs5pkPVKC3sM+TSmrQxml8Jnk34kgYwYTSo1GjProOhKNc6PGyW
mTaoGajRG6PQBrzvY3d1xSUmk2nFNV2A4V0Y4727V8RwGQx7GPydakfSB3l9
1MX6kNA93gRetBfy3FY6t3UuTpS9AHeuhpzJhG/sYIS0numUjkNyB0brjoe8
HZvbKlAmSGo1QtQB2WCgCv1gM/6OJCYF87NqREXQbO92fLI/Oii0Gxl4eFh9
fC2rpyMUENzk23cE4FFys4R8sxMgPBwIeLRF4jMzP+7zOUnW5EwuJNmidErM
U9TEQ9v5L5keHqyZtDIeJA97Lm5P7GTxEmlugeDXp5ZXXWOByWUOPDDIlyiS
1rjIcLrT1x/h62y1nUvekrneoutfOhjwJIWWsHzNj3in4Vy59+IWZKjR+AVb
O3GbdidAJUiJs8raOlAlHfQDcXbQY3wlSnXbbT5a0jIW6aZSi1rhJ50Sjl5J
BWfTgcyt6KGBgaoGiZIclHnTToGjl9twyDv9L26beOXxJlDK6cl9YEpWxVoE
XnWTIvVz4q0h5sBwoG+FHD85A82nNMyigZT80U2ON0mUIcRBZGqT5MmgxWN8
2GS9KD4zPtlH520K5MnN16O/rQpAzaYvag/M6Gt5XhglcgrOeSqkc8ZJYRRh
rBp+XW8bHxz/S7l38xJK6bRDcK+JK5Ben5OJ7edBCs9v/cK42uTnic0vaxK9
RvoVnBuBFcfagJetvn788P3e4EfI6Jwmu4OJJpMHuLp8nZrhDVRlof2H85Ap
W4R10nMfm/ZmI/tgpUikQFlLjG5P8lJVeQ+zuVAjv7APkWUHn6v0oiYYpYV2
1tblvnLVPGPyUVZxldrX+rnQcdRQNo5uuPB/0CAAsfM3nCbJ9tCilu/OMhz1
mLHqMY/V4xSxQg2bPlSynCqMTWUQLXSmsOp4L7PFI4FiMKjNwu4Ifef1ZJJK
0wV5cGMufbteCOvo3A3c5+7dtLSdCw5Tik9UdQmYYekEUu+U/L5T7Ft9HV5A
Qf7Iia1yCkG37CAjHbtzrGouZCNv1kF7Y/Sl2NftSU4S58yLI+0XjITOo6Rd
MH1aOJrZ3+bb2ysBNR6fUXSJz46wFgWE06v51TrtxFv9us47lwFmn3y2OuRr
KPvGIg8+46fysTz9gQq5ufKh0svXIwy5gYEzYfoT8pxMdarezZluhuCJXrbV
lgCCAkBFY6Tez2Wn3gC4q6X1dhF5L92qyGfORL1Cz5S/qVOuLgHZx7yfLjKC
YU1EXrnLVloPcLgF/PdwBwd3SgZrbv0z1t/bwCDFl2faf+uVmgePMsOSyOWs
tpY1Rc9TBd1CYWmDT/La9NgGY6gob94ueBqMz8OtYl6+yclII/Ld/n8Mf/ii
XfLdw8B55ElgtKNYWpomHXh9nRwM/LOc9kWcQr63lcgeL4SdVRFGhi9PPuqq
FRIS/5EgFBAanWYWKFXDfUkOHNTQIPR0fcVuUN+fgfjBbquyheDPGH5KJt9I
nwnkJAQqE+osyNC1UFC4WJ32U7s5BV+F2Uuwt2cpn4B8M3ZSXZs+LTgJYuJ2
NRBhWXYn6AYcyAO3IpqWdkvRqFU0B042cvnca9FFr8AiCniNaD30IXqPxHy3
qX+s161q7Rqz605eDebfCKVEsE0ucrOGHZEtryb7LjalIQDlWY0Oh05iGbpi
W/D3xJzLAKQDDJ30yFozCUzY12ThFWoOUSifaA/LOsb+k1AcFWCz6m8jvQA1
AbHL2icHNeAHuLwKecQ+LGwEgDVtENTvwE0EZ2nMR51PUvSiOoVkWqsoTxU+
i9qHdAfdioQwWISRL0HdmMovpK5JkRYe2D+/Bx0w2FYxIBZMVaBRLk/PIqnq
wdbZgJIRPAFbQ22k62TnUI7cIzYCeQO1ML8kz3x+IbW1s9YBwApzVA6wOVnZ
KpGv30r6Yq8kk8vOaDp6N4UTr1cwTG+P9X66vF5YCWMlPW9QqhA0ucsXIbmU
6SfUlU1PkPwNXMBylYK17IW5TAmu5RqycTBit5Tf1R5c8YrS799Fo1aOtpPG
keRNaW/xg+kaRlm9V0/2B8VugEa9coahvZ6xv8C7Ci6atN+8+SFaxuDzBwE7
uYz448ivFeZc2Q0ZGiFsMaYFIpUydW6mVetK2+0CiRtGsNerXF/lQ9nmucO/
HXhCsaxZlb6sYu5GI6JgFOwXhiEgbSqc12rKeb2jtdjTQDLfbACU50AXXlbE
Q+p0QnuIa0Zy4UWM9nSvkkVaxphG8xfCnvl8DqC4RKRRhfRt314nc5VOSt5N
Jkm+8ncyOKD1DNxJR6rdLKaZz4CAFxo3ex3oSAZsCpL6VYaqBG4X1XMMCtrZ
K9P4CFhLzERB6ozyxdn1KkfUSNl+sLnfsaYxWbG7z1CU+xU5XR7MHz7TRorf
qF+Kt52J90Wd3NAPSGru3NPVdy999m+QU5DI4MXRvx/NtIPixev1t7u4QHdm
hhjX2WsWH04644fcshPmw2aTbOUHkwDdsQ/rLeI+IBb146pIn73Tz1XxSR7N
nzyrX11crz5Kxj15zpdCyPQbS7eGKrsM0m90P+jDMgfxov4LxLX5mB/48s5m
s4vk1GbD5agPlO693b4P309fl8Tojgv7LNMPLtLmeFZv9i7qFy/0Vnx8Qo5W
LYn60j/V/+tFfY/R2b3hWHDjvVlvv5FoDG/K3Z3Jzf3l3sW9mZTA5M9kleX/
tr38mXaR/F8a7nvv8xV1kpIVlHbzHQOqnoUJyD/8vaV6eAfF4D+d/+5Ztg1y
neDu/UY8wrQdvpOWQUuNpUWjF+CxAXzbc+2iZDEiWZ5bCkpuYHfZJZeOOKXg
l/2RBr1o3P+QbvEDC4v6OHtXH3d5o2O83pfK08P/MjQT33Tb+qL+u1/q3k/3
nvlEzvLLF/nli/Bymit//epjeEOmz99J/whvpSn1d7Z9eENm2d9J/whvqVOY
3v7L+/ByMXjpzfQn3/0Zf6oz/YGu9Iv6r6f9h9NmJaKiadP2raePd4vl8NWz
4G5r5ibD6Y1yoSmmQddiviF+b0fuKAyQ/TV9bvbZ6StufWRRfDEcrMjaF2//
62fTHvte/fL1nw4Of3j3H3vS2CMMtDTa7374wVYz8gJ2fD+3xibjqz369uAw
cNX2sauN32dHKCoxKhte4xLknQKtBqIx8f/7vfqwbesHD/cecUOkZfJBLvCh
F+alF3UA7fF1v7OdvLDKqXtw/1moPeykWfEWB4DRUBzo5UB2OxY/IJmZD/qB
nXDcyH/iSQ/Ok8KZHx4r6QZ2h6ZKrvEB/Ett/8HKIDvyarJu8SKTJkwu+Q1H
tXzoB+no0KhJDNQPPx7VP3xTH7764e3+mJqiFvWCNFB7UuDhVd6sQ11ZfXwB
Op5cL0GYI3Fd9v804WPN3nqNie72VTsRvgI5T0ccEd5f3vMuLOxLp9j78unS
EZ+7/WzWirXh734gJCAvkPTv0eYxQ/+OyIJKD0EB3QnSHg9ln/FDRW9vVi5S
hV78qn5tg/ttJyo8txU7YeaX6zQYfXKhIHy36oP43f3fyUxcbdNJn4bh4f2H
T9OdVkcpytGGP2NS/MvLP+y/OZq/PHj9PiPtAyrfOgqN5UF9OmUVmdevNQzj
VcurWfoaOc2mWzw8ZtPDVuP5InB+qpF6juvkKw9MqdjW85zhl3jLHWWGGpm2
FBc0C2hFOcr13/78XX38yar3mh3q8fL24vryRHBqW9ZFnj766j3zmOVyOk4/
0y2Og6R3dxyIzLzJEtEgG29505KhwQlN2mNThgrDAzIhIX7qHDQiogASbb5d
d2TqHY6np0W27CWZr5Kzn7bffNHcrObph5UYJbkL+ii+LYNO594vWT5Pp5bP
y8VCs6ejSCXD7QsKE3kJJBjBrdd11UtXf5j/JyZ5l9YlwI3IsmiqsTfQa/j8
HRU1rWsZUMSE+NKPO51LQW3OlmgGRzWecBxySQcnnK9h12VYrcxmjSl2IciH
6qYUco0QhOtRiKTXC4iQb9p5zCAGpEqfJtaEdxV1gFyOEbCMvwyH/nzTkrV8
rHsTB1GPVyHXV/YYTjD53UmlVlBowB1nyLVqP8l3lVEFd10iNASaEbWBtfw+
5PNJ1zi5TZb/spWLK2fU0QWJc6xOiZXZB3IYuUt3nGTDuUj17G4OmwkNI+OZ
8liF9czNWslupNQi2/LQFIFIksbrT8nDh9KUo59pELbttNa82ThbXeBKNb6v
xrXI0TmStZKJGV9vKBwVYE+/7svqp13JFktQ7ubFKE/IEfIZDFrPmQ+mKrjJ
Wc96cf+Yp60RTdvryd4v1+uPghn/iOLb/ieyGah275eEe+XoMZFmknFWtTGa
DmqeTdTodVZTm1FvnpbVqh4EzfXRRcgzyJhctSj/QHNNDFTuuz6l/jIHMacf
0jNkRtcH72MnlNgTEyI0LcPPCk0XYol1HeUSSxlDNy47d2tT79poNWLUCnEr
edUFCgmBOHP7nHtkxXcqv6cVJffXtPQj7QpzCHf5YWB7vjLBkDGF0lSmnCIf
LNV+B76pZsz+njldyfkXaAiczpzT9DlB00K8tKB5F4TT3WTruwa3ySV21jOi
9mm2JpPk8mLnLCE/GynvmrNVjw7JR5nbqFwPBae7lgxksS9V8qYxNLQNZ9bv
wBmj6rXtImBdWFxpw7kTFWr38nE5TSL388zrKjljOPxU+g3vcMGyGULdQk2k
Hzb1HeeB0vppwRg5JLnyEuKUUZOsWB+Jquq7iKrSc2tDBTObEcDzs6NEx6nY
rR5oskWkIhHTsoRVJY9n2qdRp0hQBTMnHubg4gRUYZ2tp8PlCqgJvXJ36qI1
rFVsFSoK0+JoDMvmVJqR8LKozOfBHBXDvTCt5tVLufWoxmwUbNEh8fq0Q2T5
JeBYUKwjr/NkDb8e1vDFV44FfD/rXx9a4pg3b9qjoboc72qxSTNn1H2yaMfl
cC98jwoBdxS+sWy1VjK7o5ad19rdwBXSTLAKcgdeQ9Yb6g2G07C9CZzA6ek1
5J/hURKUgQT9BWABJKyG5lIB6ljlogrdfMMDsVlfR7dc0HKolW4664OK3cfJ
m31+A+w6VA3Siu3ca20BTVZnCvvwsuLH5MVN63gFE3qNgOYjHusE7xU9JNpb
H46hAi8wnO2Zhl6ym2NtnBVjeQoMfEhybKxGTRTbsJzsv74dFkutzqkFUg9T
7UF4u4PKJeHE/EUBrvyicPBJvfNv18kRs0jwVTZIlCU6g5FJcz7PFXAUiK4o
9WryaAG6WclZLwuLdhBUe+uNjptxJ2wRBK7AaWLMghBwhYLkBmebdR6qWKnc
jzVjg36yCzBcYmF0QVWra4lvGSqKac5CX11BljdBRSAbU5IxdrB12dCHoD1I
1OmEPsioGVQo8qPef+h5gvuPk9MZUJT4BSGKEsWYtju/OJGSt4rp1APMl+Ie
AgRuawymOLwz53GzINm8nCjiLPmoKar9RLI/S/TGKlWRes1yJAKfNpd1JwCV
Zb+Gu+V0mGjcNqfrzaGORgwkseoy10bPrIUoC6xuL4tj/0Jpp8Ful5YUutVi
asRY+KzRQI6aS1nmgPO2Z6TS9vb5eW5Ssgk3ympf8ybGXPoUnTMH9wD3Hfs1
lR7cf0wM2/eNyRJiDc8h6aIYEDHhEp0P/B1NVTDVugK2hNxmQtIpvZ07JXnS
bIoIaQaEX/naLjCATaEa4oFPb5f1x7eLTAtaDFyi3bzhm1MEhohg6UbrS/Sb
3+XVzqM4rfRCtcMTRjLZVS4/6g90m3jTUeKDmhd+dZJj3n9ItKiS+/Z3K4TI
WDvRVt4ZAJzXIY3WtiTjA57IYd/Ahxl1F3Ns0pFBih+ugOYcYgK2Ws6ay04Y
8YwMOGfILbJT/2CQUivO9wdkoLI2JfOOc7OU2AZ9U2IGMjZvGfLG+xDYrn3p
OH9M8jJRJyp+yEry7eYyCCe09ffokBOCaSaH3tov2Z7T48v03NJq7LnJmk9d
TzvT0IfIp/IyOXS+/8xguCEE2PLNIYc4L2EaGF2Fpb3Sfp6AokdOr2HDZ7Iy
hgAKKnemHkmJuvQZJa1nVCIrQIRJcp4IRotrSX6ptNFDCZ5wPtj9lt1yu7MA
YfLcWjxWlu3ZFonw6145R19ONrBhco1/fmItwNsHny/6DPLCxBybep5116Uj
4vC7g7dvha69/dScQu2qdGEeeKPdzFx6SjU1ingabgqbYQDJzhoRcwwFJJAg
yz74s+TfnUhe8g6MadNBDsktyVwGC7Ja55Y1tGxJxkrjWPHcVqfd0npwOVfa
spNLB+lGPTVpb6paBKQ89QzIXZPDXTOboqSHDhywFXKVwcBF6WGl0hblqkWr
IC/xdXK0kLzr2+Rpn6LlJt1Y31t1oTNJ9LOOVnsvmwZx823u2GRgVR6um+HW
t8/iEJn5yQz4WbNh2qX/qxQx9BRfqwODc09jJG0wzWSIUJCW0NbBJ1rfkZPS
2cQz8SF2tzKAg3x/jXDJA97Gp4jeafpuukRnMkxhnB+6oSk45yzXpPfHHoBM
HYVRiU0ApD9NF3nwL3969e3Ld64P0n4CMEM9AeEp8jKn3eKpkfNi8AUCwACB
nCvhVi1tayw+kW0k7XcxunN8S0pQ2BRYoBiow7ecD94P2+YKNRAlpVtvBElA
BCwDx53gCBC4uDtoWOGZ7Tcq6gfSTGHlBXo1bOThE+R6kNxzANcFD8BUf2Fn
ENRQbV1HyC5lg0HjK2n7iJShktUquD066EqkbdQWV41Hku1qEZnMMTiyXwpZ
Dl0B4KOYp0PomOGp8T3WTIkf+1qQT+PvBtTR9WBSKgpsUFIkSq/UujDCkrhJ
5w8a0rYRgK1u/1iJRUYta7FAk+SiEawrE9pIeulc16IfFI9yUJkLhXoFsDeH
E8dgduLhED0zqRm1hmmlhYXmvkR4VCWQv04B9FwOAsysHE3PpWeqk2zi5jh/
X+wCvgQL+eO7A1eGy2T3m+aGm4uhMcbN8dEyy5xhGmssm5U1MjcmZSYhnihO
6v2Z/gTAFWJ/xGO09+1WitJQy3vmHpArQmNIgS7tJ+RYzde2jVSNV5aCOIwE
IKPA6mlcuZtsXURuU/FFlo3c4HpbItVN/J8hZW1NyyetCTTI4c36FjL5enQP
pILkUf6sdNp+KMP5NVJwyYNQR8g2qRlnbRyE5FFtM5/X4zGO1jwy+RkxLEiy
J48J3ochAuwTudLTJ99hO1+v5lnACAcvE7mDAAiOJ71UYTf6ybqebkTkhtj5
QZJX68vPo2mHO3VjSqI5X9qr+k+zvJG3FmsQXIkr4tJ+mTqpNRMej+FkCOV1
PcZfwGURT8BN9siH1NbakIqgQ2SiOJpNCL+hJfLQwfCRkAtqWfeZHgLxf/7q
C8qPyb6ei4l8Ti/vRTI4yCnDYY71VnWHEHKvYXqykfGrIs/Zesv3ILeCZcmk
qRYmhlkKUOnfXKQD+9M21Ce67TV5oSN5Qe15xJC/+Mv3+LtkHvK/3r369uBo
/5W8gsLa4cuDt+8tf5Am3tj507TfLteN8pdL/l8zQWn1QfA46Jsc/unV7/eG
+XswxzpZ5Zaqw3//e+TAlkBBTWNnapm1nnv8CEV5T12AKAbNs1rZ1u8/mkko
xvxYb/UVHHDeIIw0aAOHuKS3BtakU7ZbnnGnmvwdkdCqXh/pHi3hLd0EbT8q
rexMFkeseD4XHdHc0yxORyNdv2ifv4aLRQKUg60VXhiXjV0+b2jWyod3zDQD
dqGy8zl/LEvdZ6OqfWcWsIzaDHL+PJevLaufrzJuYxDbzrPe67144LnJm4xa
bixtnLPJIbjENe7skJn5D5trKzbbrKtPMywez0QcYTd6uE40OvXe6GQfGjry
k70uqoAkWudh/sUJ8clV11M6cF4c4wvo/8+E/0H8vOh33vMvdWwxG7fkDHLq
BkoVrftAYJGOJhvRW+kWuk6rnPHtSmutcs2i9Jgr69aJx8iEa9mkDEOlyDJv
VBDqTPZLRvCb7pM5mV/WitMJXaFzUDIUUIiH+2nJj855jowkWYf+o4HXV5qo
FWsWoOtoff7pmAk4wATspuR0hnaYJZh6Dnr9b4c/vFFwu3XrSOVPHOzuHJoZ
hYIkPu7ZfCvkOcqeRomZDY066J9eJOcCVJdAMoqT3Y/U7jxHpwy0Q+JW4Tgx
ZI2aZhvhguRWhIDDTXcreW4c6vtGWmu+C0XiOm0NlSJTGvt1HDWh1MS+ayTj
wMQyLKsKeSF6lg/NDWW4DN4USNQCGdixWhtKhWIL31pLVGvTsLVRlfsRwIDm
YY4iLA8JHcQovAUonZa38SwuSW2BFT3izoBMBtPTqCE8cCFqazm8vKP5SWbU
xBwEE14A7ef3n7Dmc/dX1bDhOFo2to8uhW50ruORO7TwMl/NOykZhovuRI5B
eQhxPLdUaJZktNav6ZPz0bmPEWNcNguS0VkUqAgkrJs0Y/U6xW9bAcincaPI
vHFXNPQkcq5YmTSDMyuprjSAK1BqMrMk/iiyvJqWsHvvwGF/nSIeDiPlOxFo
an3VKM884Bfcz+Y8gmhRgV+yHrL52NcDSqZGUJDzTGYTWgBWTOtiFaUbiCQ1
dzI1wcdFKXikW+ScdUxIBMl54BbYC9VsNQcWRUJz1k7DcxJZYb4U3N2H6Dwd
4rmrmEEWgLT9RXeVbD4SEcyCyQ8roSpw0hRKVFpVREJ3c6seRcSQ4apR64vW
Xn0Ceb2AiObmOhrurStT8vD4s54w6nmGlo8p9wGHlwv+0f0yeeBR3652BW6t
ZCI1hG6VorHzW9dDl/ejvU7HJmI04ibT6ezufMDqy+bD3pHKo/SN1+BEaK/S
lb7+bL+6ln4AXIC3+P+khXjdt/ECxoxzdNGag+EQZOMh9i2Is07TZiHMP0l7
+CM1eWCPBw3zBomPitPbgAOv6kmvK6cAZf0R2cGUhbWv5CxHeYpdNVdS71yD
EQuXaU7Vq7cKs55nToMw1tHT88v6gcTxiZi5St1Ll+trsuiuKWlplia7Ty58
1tnQxa52Xauo4qFaAkMvhtgcMTg7wmc1GGKTKOdnNa/do+IRhkVet/bgPjio
qCAg/jVapExCIZsdSmyu/gN/xkyuZV/4qq6UMMYZ3p0s6hq3b/HXEI+0bJQg
r86oMOTnDDlv6q+httr4bY1iOFt0conbyxOhu7FtoXOFeT0HlMMFI+1JqPss
AyShghx26czcQPEgDoMrolB8c2XnVBpO0r3BQ4JxjFCGsiQAkM31JkBc+bUC
wIsY3l94iA4iDkjkBlBFkiGkxLZ3rPbl/HcaqcxuPgQOI22ZVgZD5yZ/9NFz
pHT6wO1XtEY7jvXuSzy2TTQV7o5v7ml5cw/fazJj+trPcXOZOXDy5n73uUs8
1cxUY0KEXMzcqjbkcqRstDtyOx55t+9I0OYGcAJ1PD87NYZj8MMujZmdLWJ4
Jx5vZxofsRsAUAQ/aC2mz0Uuq0oWAAkDeUwDJaQaYKGtoaJoOAGIqjMgaoTu
gCeR4T3pzm51EgCIkN2xvHVXfoRD2bQKMK0dhiIWrF0uNRGqjiEcPTMHA6gF
wqPChmIchg01vbuR2fqke97cZofKatcXDRyVPyBo245RwUgiIv/uBZ+dkn1j
d6a+nkxLkW3te8PYyfiiw925flBYbii/7Fqitbg2540WafK1vEy8ZPOmICzd
xdk4zz0mSJttBLC5AbCAzStWIqQVZSnIFKfgDUl+vktHFRcq+iR0qCaqD7Mg
DR69q5MWgXm39R4LGdGfjuda2bs2vQStlAeVJLvhdLK37WJ9OTgL6RqB9RvV
2kHBnekdBdv34guvQA+My3+JswytWdG7BIY51PBpdAqrh2yFqLkwwTzT7SNf
mrRhW/p+d+CGfDJxKqSN+f3Lo1ffqpOgbzXIXfytIWSCItxy+qZ1hnqGzmb+
dYw2dnjvGSB39VVneZRA1NopieBozz3nVNXeM+HESLQdeSCCMjkn72bNqbpc
Y4el3SQx0tw8lzwGnk5mPvTa4giN4ANPzkq772h8ziQRk82SJdcGO3+UBldP
VfK5tSIm19fiWB+2P7UrI3MRw/Vu///8ePBu//VzhVJlFwzrBL8PVwL2EgXv
XwSHfVTvvLzadEvHw+4vuu1aGDQjVL/eAUu4rPp0hu4+q+JoXrRMtM2RaJtr
Z5wUKiSDqOIEgHcBVPvQ4aLKTAVLax4mh046eh4+vf/0fe2yTEYCz8urI9I/
9zQffz3KtFqPnmq5a6JftkBQhkFcHukpC2ysRAqb7grnPEMQMJrIP3RufKWR
B0j+vUojDoUUOWvT58FmsFVMOJLIDMUj5a7CGS6FplU4TlubBfH2wbqYZvNQ
8rzCQitJPyWj7p95s2c4OAL179Bj3hnBKZkxZN3iGFyXmdfxTipMf/61NS2y
EQXZGtApbzMR/mUjRL4SxWnfhnLBdKUCgdaip3SuyMbSj/iT7/oZr23ISnr6
9Ouv3gcNBaE3IDZikl65kBOcp/k/P0erVyBF6PfioH+O9y0+3s4gxEfBPPY4
3Himots+T7/V6lZ/QvPBpKL/dFOIPhYqklR/HN3MFdZkln30tXC96XRA/aGK
Dq4xK97OEDg7w9kwyWvk141Vv0wH7c7OtSvXzpmQbhcsxVX1uDjoJ3ukSwts
p1EPUv2aoBvoQ/hZebedidT3rmLUqOWWrsrMp8u1+bUPRQpbLMVAHFgeWbeB
tKmimXLmhTgxjN7NO1nhmYWEQjJ3zSl0Sk7F0NT9x/ZGvB6beOx4bXI3h4Sm
Rko1HWZKittyBKWjjnV73P1bldmeuHnVycqMS4LnR+YpPVb68f8qBLsty+C3
fB1lqP33TPqN6UzVZcv8lUxX60+yywgapbUJW7I1y1QjJvruhrIfvFZempPd
atx2E02NuqNiQqixJqCDIQp8SvkCPJvpLLyLl17nroAalzDxWb1sm5+0nHEZ
m3WHjVMaMyJK0ajnM9blFzgND4dOQ3ECTSlnikanmUk9iYpjp0Qk/jJOYjkq
Mr3wLHILD/iKh2zFxlRMIuNP2+FpNs2GP2nz69+PHe0v2rvgwk/YPEkciZXz
y9yhVbqT9avcsu3qbnP6qiwoKW8MdDbtgwrzv3MjcrO5GFJa1juvDw7f7hoy
hLvTpZJC52b/39pgFhV9sLUWQ21jopUrfkZLpgTnjxsliktysKi1E3U/v7wF
HtyxBXxdfAPXPgU84o+IGC6xPlgAXI2sE4OQ9ZjhCTdDbwfH6dj2ujRFMt/X
G1A2LtpTsqLb96/UdE98HT9mUHV+CoJHOqx4gldrZPdjOETDerj/dv7g6ydf
z+qXB6/THw9ffmFyvTHyF4zn/fF4HpherEhO9+aQu8kYTH8uFloWEDcdsybx
61PJM3wBTLoCUlgKuWTxiyXhvRsRm8MZ+e9Bkt+JK6FM6dvt0hjSg63hjJFH
oLcYX5PB2SgsEJ+spPVTNQ+5s/eq/wtAUhB90iYCAA==

-->

</rfc>
