<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.4.5) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-miller-ztnp-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ZTNP">Zero-Trust Negotiation Protocol (ZTNP)</title>

    <author initials="J." surname="Miller" fullname="Jake Miller">
      <organization></organization>
      <address>
        <email>jake@zivis.ai</email>
      </address>
    </author>

    <date year="2026" month="April" day="27"/>

    <area>Security</area>
    <workgroup></workgroup>
    <keyword>posture</keyword> <keyword>attestation</keyword> <keyword>authorization</keyword> <keyword>session binding</keyword> <keyword>zero trust</keyword> <keyword>negotiation</keyword>

    <abstract>


<?line 87?>

<t>The Zero-Trust Negotiation Protocol (ZTNP) specifies a session-scoped trust negotiation protocol for software-layer security and governance posture. ZTNP defines how a Relying Party challenges a counterparty for a signed posture credential, evaluates local policy against it, and issues a short-lived, channel-bound, scoped authorization artifact (a Permit) gating subsequent operations within the session.</t>

<t>ZTNP covers three phases:</t>

<t><list style="symbols">
  <t><strong>Enrollment</strong>, in which a Prover obtains a signed Posture Assertion from an Issuer that has assessed it against a publicly-identified security framework.</t>
  <t><strong>Negotiation</strong>, in which the Requester issues a session challenge, receives the Prover's Posture Assertion bound to that challenge, evaluates local policy against it, and either issues a Permit or returns a structured denial.</t>
  <t><strong>Validation</strong>, in which subsequent operations within the session are gated against the Permit, with mandatory channel binding when the transport is TLS.</t>
</list></t>

<t>The protocol's central design choice is to anchor the meaning of trust claims to a publicly-identified security framework (e.g., NIST AI RMF 1.0, ISO/IEC 42001) rather than to a specific Issuer. A policy expressing "require tier 3 against framework X" is portable across any Issuer that attests against framework X.</t>

<t>ZTNP is independent of any particular attestation pipeline. Posture Assertions <bcp14>MAY</bcp14> be derived from RATS Attestation Results <xref target="RFC9334"/>, from compliance audit programs, from automated governance scanners, or from any other Issuer evaluation methodology that meets the format requirements of Section 5. ZTNP is <strong>not</strong> a RATS consumption profile; Section 1.5 describes how ZTNP composes with RATS-pipelined and non-RATS-pipelined deployments alike.</t>

<t>Multi-principal delegation, prompt-injection-resistant intent binding, and behavioral-claim extensions are specified in a companion document, the Zero-Trust Intent Protocol (ZTIP) <xref target="I-D.miller-ztip"/>.</t>

<t>This draft is an individual submission. The author intends to progress this work in a venue scoped to attestation-gated session authorization; possibilities include OAuth, WIMSE, SAAG-routed new work, or an Independent Submission. Community guidance on venue is welcome.</t>



    </abstract>



  </front>

  <middle>


<?line 105?>

<section anchor="introduction"><name>Introduction</name>

<t>Existing identity and access management protocols establish <em>who</em> a party is (identity) but do not bind the resulting authorization to that party's verified security posture, to the transport channel the negotiation occurred over, or to the specific assessment that justified issuance. A service may present a valid TLS certificate while having unpatched critical vulnerabilities, active security incidents, or no security or governance controls of relevance to the calling party's policy. A token-bearer may have been authorized at time T₀ on the basis of attestation evidence the resource server has no way to verify at time T₁.</t>

<t>ZTNP defines a protocol by which two parties — services, agents, or any other principal capable of holding a signed credential — can negotiate trust at session establishment time based on cryptographically signed, machine-readable security posture claims, and gate the resulting authorization with verifiable constraints.</t>

<t>When the parties to a negotiation are themselves intermediaries acting on behalf of upstream principals (an intermediary acting on behalf of an orchestrator acting on behalf of a user), additional protections — delegation chains, intent-scoped Permits, and behavioral claims — are specified in a companion document, the Zero-Trust Intent Protocol (ZTIP) <xref target="I-D.miller-ztip"/>. This document and ZTIP are designed to be used together for multi-principal deployments and independently for two-party deployments.</t>

<section anchor="goals"><name>Goals</name>

<t>ZTNP is designed to:</t>

<t><list style="numbers" type="1">
  <t>Allow any party to verify another party's trust posture at time T.</t>
  <t>Bind that posture to a specific session via cryptographic challenge to prevent replay.</t>
  <t>Enable local, deterministic policy evaluation without runtime calls to a central authority.</t>
  <t>Support constrained authorization (Permits) with mandatory channel binding when TLS is the transport.</t>
  <t>Make trust claims portable across Issuers by anchoring tier semantics to publicly-identified security frameworks rather than to vendor-specific tier scales.</t>
  <t>Compose cleanly with existing IETF and industry work rather than replace it. In particular, ZTNP consumes RATS Attestation Results <xref target="RFC9334"/> and issues authorization artifacts compatible with OAuth 2.0 / DPoP <xref target="RFC9449"/> carriage patterns; it does not redefine either layer.</t>
</list></t>

</section>
<section anchor="relationship-to-upstream-attestation-pipelines"><name>Relationship to Upstream Attestation Pipelines</name>

<t>ZTNP is <strong>independent of any specific attestation pipeline</strong>. A Posture Assertion is the output of an Issuer — an entity that has assessed the Prover and signed a structured claim set about its posture per Section 5. The Issuer's evaluation methodology is unconstrained: deterministic compliance checklists, automated security scanners, human-led audit, RATS-style hardware-attestation evaluation, or LLM-mediated assessment all produce ZTNP-conformant Posture Assertions provided the resulting signed token meets the format requirements.</t>

<t>Three upstream pipelines are common in practice:</t>

<t><list style="numbers" type="1">
  <t><strong>Software-layer governance assessment</strong> — compliance auditors, certification bodies, vendor self-assessment programs, automated governance scanners producing claims against frameworks such as NIST AI RMF 1.0, ISO/IEC 42001, or OWASP Top 10 for LLM Applications.</t>
  <t><strong>RATS attestation pipeline <xref target="RFC9334"/></strong> — an Attester produces Evidence per a RATS attestation profile; a RATS Verifier evaluates Evidence and produces an Attestation Result; the Issuer is the RATS Verifier (or sits behind it) and emits a Posture Assertion derived from the Attestation Result. Natural where hardware roots of trust (TPM, TEE) or platform-rooted evidence (cgroups, sandbox attestation) are available.</t>
  <t><strong>Hybrid</strong> — software-layer governance claims composed with hardware-attested platform claims under a single Posture Assertion.</t>
</list></t>

<section anchor="when-rats-is-the-upstream-pipeline"><name>When RATS is the Upstream Pipeline</name>

<t>Where a deployment uses RATS as the attestation pipeline feeding its Issuer, the role correspondence is informational and follows the table below. ZTNP does <strong>not</strong> define itself as a RATS consumption profile, and the Posture Assertion is <strong>not</strong> a RATS Attestation Result: it is a separate, ZTNP-format signed token that may be derived from an Attestation Result via re-issuance under the Issuer's signing key.</t>

<texttable>
      <ttcol align='left'>ZTNP role</ttcol>
      <ttcol align='left'>Corresponds to (when RATS is upstream)</ttcol>
      <ttcol align='left'>Notes</ttcol>
      <c>Prover</c>
      <c>RATS Attester</c>
      <c>Source of Evidence in RATS-pipelined deployments.</c>
      <c>Issuer</c>
      <c>RATS Verifier (or downstream of one)</c>
      <c>Evaluates upstream inputs and signs Posture Assertions. Publishes its public keys at an Issuer Key Set (IKS) endpoint.</c>
      <c>Requester</c>
      <c>RATS Relying Party</c>
      <c>Consumes Posture Assertions, applies local policy, issues Permits.</c>
      <c>Posture Assertion</c>
      <c>(derived from) Attestation Result</c>
      <c>A Posture Assertion <bcp14>MAY</bcp14> reference an upstream Attestation Result by hash or <spanx style="verb">jti</spanx>; it is not byte-equivalent to one.</c>
</texttable>

<t>ZTNP's "Sponsor" role (Section 3, Section 10) is <strong>not</strong> a RATS Endorser. RATS Endorsers issue Endorsements about an Attester's intrinsic platform capabilities, consumed by the Verifier upstream of any ZTNP exchange. The Sponsor role in ZTNP is an <bcp14>OPTIONAL</bcp14> deployment-time vouching authority (orchestrator, CI/CD pipeline, owner) that participates in Assessed Enrollment (Section 10). Where a RATS Endorser is also present, it operates upstream of the ZTNP Issuer and is out of ZTNP scope.</t>

</section>
<section anchor="what-ztnp-specifies-that-rats-does-not"><name>What ZTNP Specifies that RATS Does Not</name>

<t>The aspects of session establishment that ZTNP specifies (Sections 7 and 8) are deliberately <strong>outside</strong> the RATS architecture's scope:</t>

<t><list style="numbers" type="1">
  <t><strong>Session negotiation.</strong> RATS specifies how to <em>produce</em> an Attestation Result; it does not specify a session negotiation protocol by which a Relying Party challenges a counterparty at session establishment, receives a bound credential, applies policy, and authorizes the session in real time.</t>
  <t><strong>Channel binding to authorization.</strong> RATS Attestation Results are not cryptographically bound to a TLS session by default. ZTNP Section 8.2 requires the issued Permit to include a TLS-exporter channel binding (per <xref target="RFC9266"/>), so that a Posture Assertion accepted on one connection cannot be lifted to another.</t>
  <t><strong>Policy-driven authorization issuance.</strong> RATS produces an Attestation Result and stops. ZTNP Section 8 defines a Permit — a short-lived, signed authorization artifact — that the Requester issues based on its policy evaluation of the Posture Assertion.</t>
  <t><strong>Framework-anchored claim portability.</strong> ZTNP Section 5 anchors claim semantics to a publicly-identified Framework URI (e.g., NIST AI RMF 1.0) so that policy expressions are portable across Issuers attesting against the same framework, regardless of which (if any) attestation pipeline produced the underlying evidence.</t>
</list></t>

</section>
<section anchor="deployments-not-using-rats"><name>Deployments Not Using RATS</name>

<t>ZTNP does not require RATS. Posture Assertions are routinely produced by Issuers operating entirely outside any RATS profile (for example: a SOC 2 auditor's signed assessment artifact, a governance certification body's credential, an automated configuration scanner's signed report). The on-the-wire format, the Requester's verification path, and the Permit issuance and validation flow are identical.</t>

<t>This document does not specify any Evidence type, RATS attestation profile, or Verifier evaluation methodology. Those are deployment choices; the claim shapes ZTNP carries (Section 5) are valid regardless of how the upstream Issuer produced them.</t>

</section>
</section>
<section anchor="relationship-to-oauth-20-and-gnap"><name>Relationship to OAuth 2.0 and GNAP</name>

<t>ZTNP Permits are signed, scoped, time-bound, channel-bindable, optionally PoP-protected authorization artifacts. That description fits OAuth 2.0 access tokens <xref target="RFC6749"/> (especially in JWT form, with DPoP <xref target="RFC9449"/>) and GNAP access tokens <xref target="RFC9635"/>. A reviewer reading ZTNP after either of those will reasonably ask why the Permit is not simply one of those tokens. This subsection states what ZTNP requires that neither OAuth 2.0 nor GNAP enforces by themselves.</t>

<t><strong>ZTNP requires a single cryptographic transaction that binds three things together:</strong></t>

<t><list style="numbers" type="1">
  <t>The <strong>Attestation Result</strong> evaluated for the issuance decision (the Posture Assertion, which itself <bcp14>MUST</bcp14> bind to the negotiation's <spanx style="verb">challenge_nonce</spanx> per Section 7).</t>
  <t>The <strong>transport channel</strong> the negotiation occurred on (the <spanx style="verb">ch_binding.context_hash</spanx> in the Permit, derived from TLS exporter material per <xref target="RFC9266"/>, or a profile-defined transport-equivalent binding).</t>
  <t>The <strong>authorization artifact</strong> itself (the Permit JWS).</t>
</list></t>

<t>Each of the three artifacts cryptographically references the others. A verifier presented with a Permit can prove, from the Permit alone plus the named Issuer's public key, that <em>the specific Attestation Result that justified this Permit was bound to the same channel the Permit was issued on, and that this all happened in a single negotiation event</em>. A Permit cannot be issued from a stale Attestation Result, lifted from a different channel, or detached from the posture decision that authorized it.</t>

<t><strong>What OAuth 2.0 does not enforce:</strong> OAuth has no concept of attestation-gated issuance. An AS issues access tokens based on its grant flow (authorization code, client credentials, etc.); there is no standardized attestation evaluation step. DPoP binds tokens to a key the client proves possession of, not to an Attestation Result. An OAuth deployment could be configured to require attestation evidence at the token endpoint (via an extension grant type), but the resulting token does not carry a cryptographic reference to the attestation that justified its issuance, and a downstream resource server cannot verify that linkage from the token alone.</t>

<t><strong>What GNAP does not enforce:</strong> GNAP is more flexible. The AS may evaluate arbitrary subject information during a grant request, and a deployment could in principle pass attestation evidence through GNAP's <spanx style="verb">subject</spanx> element. But:</t>

<t><list style="numbers" type="1">
  <t><strong>No normative attestation-to-token linkage.</strong> GNAP does not require that the issued access token cryptographically reference the specific subject information that justified its issuance. A GNAP token issued at time T₁ may have been authorized based on subject information presented at time T₀; the resource server has no way to verify, from the token alone, what posture the AS evaluated.</t>
  <t><strong>No mandatory channel binding tied to the attestation flow.</strong> GNAP supports proof-of-possession via key binding, but the bound key is not required to be the same key (or context) that bound the attestation evidence to the grant request. ZTNP requires the channel binding context in the Permit and the channel binding context the Posture Assertion was negotiated over to be the same value, derived from the same TLS exporter output.</t>
  <t><strong>No standardized framework-anchored claim portability.</strong> GNAP access tokens carry whatever the AS chose to put in them. ZTNP requires <spanx style="verb">framework_id</spanx>, <spanx style="verb">tier</spanx>, and <spanx style="verb">flags</spanx> as top-level claims on every Permit, anchored to a publicly-identified security framework (Section 5). A resource server applying policy to a Permit does not have to parse provider-specific claim soup; the policy language is portable across Issuers attesting against the same framework.</t>
  <t><strong>AS-centric flow.</strong> GNAP is designed around an AS that mediates between client and resource server. ZTNP supports peer-to-peer agent-to-agent flows where the Requester acts as both AS and resource server with no third party. While GNAP can be configured into this shape, the protocol's idioms (<spanx style="verb">interact</spanx>, continuation, multi-token grants) are heavyweight for the symmetric two-agent case.</t>
</list></t>

<t><strong>Could ZTNP be a GNAP profile?</strong> Plausibly. A GNAP profile that mandated attestation-gated issuance, required the access token to cryptographically reference the evaluated subject information, mandated channel binding tied to the same TLS exporter output as the attestation, and standardized framework-anchored claim placement would express most of ZTNP's semantics. Such a profile would be a substantial document — comparable in length to ZTNP itself — and would inherit GNAP's negotiation overhead for the simple peer-to-peer case. The author considers a standalone protocol with explicit composition profiles (Section 13) clearer for the symmetric peer-to-peer attestation patterns that motivate this work, but does not consider the GNAP-profile path foreclosed; deployments comfortable with GNAP's machinery <bcp14>MAY</bcp14> treat ZTNP as a model for what such a profile would specify.</t>

<t><strong>Composition with OAuth-issued tokens.</strong> Section 15 ("Relationship to Existing Work") sketches how ZTNP composes with OAuth deployments: the Permit JWS travels alongside an OAuth bearer token rather than being collapsed into ordinary JWT claims, so that ZTNP's three-way cryptographic linkage (Posture Assertion, channel binding, Permit) is preserved end-to-end. A future revision <bcp14>MAY</bcp14> normatively specify the wire format (e.g., a parallel HTTP field carrying the Permit) once deployment experience accumulates.</t>

</section>
<section anchor="non-goals"><name>Non-Goals</name>

<t>ZTNP does not define:</t>

<t><list style="symbols">
  <t><strong>Identity</strong> — establishing who a subject is. ZTNP binds posture claims to a stable identifier; identity is established by complementary protocols (OAuth, mTLS, SPIFFE).</t>
  <t><strong>Multi-agent delegation semantics</strong> — see ZTIP <xref target="I-D.miller-ztip"/>.</t>
  <t><strong>A runtime envelope for agent communication</strong> — protocols such as A2A address message exchange; ZTNP layers above such envelopes at the posture and authorization layer.</t>
  <t><strong>A tool capability protocol</strong> — protocols such as MCP address tool semantics; ZTNP gates whether a tool may be called.</t>
  <t><strong>A transparency log</strong> — SCITT addresses durable, auditable statement registration; ZTNP <bcp14>MAY</bcp14> use SCITT but does not require it.</t>
  <t><strong>A key management system</strong> — ZTNP defines key discovery (Section 6) but defers key generation, custody, and rotation to deployment-specific infrastructure.</t>
  <t><strong>Risk taxonomy or assessment methodology</strong> — Profiles (Section 13) define domain-specific semantics; ZTNP defines the carrier.</t>
  <t><strong>Standardized evaluation methodology</strong> — different Issuers may use deterministic checklists, automated scanners, human review, large-language-model-based evaluation, or any combination. Two Issuers using different methodologies <bcp14>MAY</bcp14> produce different Posture Assertions for the same Prover, including different <spanx style="verb">tier</spanx> values; this is expected. The choice between Issuers — and the implicit choice of methodology — is a Requester policy decision, not a protocol guarantee. ZTNP standardizes the credential format and the trust model that lets Requesters select Issuers; it does not standardize what the Issuers do.</t>
</list></t>

</section>
<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>

<?line -18?>

</section>
</section>
<section anchor="terminology"><name>Terminology</name>

<texttable>
      <ttcol align='left'>Term</ttcol>
      <ttcol align='left'>Definition</ttcol>
      <c>Requester (R)</c>
      <c>The party that initiates trust negotiation and consults its local policy to decide whether to proceed.</c>
      <c>Prover (P)</c>
      <c>The party that presents a Posture Assertion to demonstrate its security posture.</c>
      <c>Issuer (I)</c>
      <c>The entity that signs Posture Assertions after assessing a Prover. Publishes its public keys at an Issuer Key Set (IKS).</c>
      <c>Sponsor (S)</c>
      <c>An <bcp14>OPTIONAL</bcp14> principal (orchestrator, CI/CD pipeline, owner, human user) that vouches for a Prover's identity at enrollment time (Section 10). The Sponsor is <strong>not</strong> a RATS Endorser; see Section 1.5.</c>
      <c>Posture Assertion (PA)</c>
      <c>A signed token containing machine-readable security posture claims about a Prover.</c>
      <c>Permit</c>
      <c>A short-lived, signed authorization artifact issued by a Requester after successful negotiation.</c>
      <c>Issuer Key Set (IKS)</c>
      <c>The public key endpoint published by an Issuer; analogous to a JWKS endpoint.</c>
      <c>Framework</c>
      <c>A registered security or governance framework (e.g., NIST AI RMF, ISO/IEC 42001) against which a Posture Assertion is made.</c>
      <c>Framework Identifier</c>
      <c>A URI identifying the security framework underlying a Posture Assertion's claims. The URI <bcp14>SHOULD</bcp14> be a stable, publicly resolvable identifier published by the framework's authoring organization.</c>
      <c>Tier</c>
      <c>An integer within a registered framework conveying assessment outcome. Tier semantics are defined by the framework, not by ZTNP.</c>
      <c>Binding Mode</c>
      <c>The direction in which Posture Assertions are exchanged during negotiation (Section 7).</c>
      <c>Channel Binding</c>
      <c>A cryptographic binding of a Permit to a specific TLS session, using TLS exporter material per <xref target="RFC9266"/>.</c>
</texttable>

</section>
<section anchor="architectural-overview"><name>Architectural Overview</name>

<t>This section gives a high-level view of the protocol. Subsequent sections specify each element in detail.</t>

<section anchor="roles"><name>Roles</name>

<t>ZTNP defines four roles. Where a deployment uses RATS as its upstream attestation pipeline, three of these roles correspond informally to RATS roles per Section 1.5. A single deployed entity <bcp14>MAY</bcp14> play more than one role.</t>

<t><list style="symbols">
  <t><strong>Issuer</strong> signs Posture Assertions and publishes its public keys at an Issuer Key Set (IKS) endpoint. In RATS-pipelined deployments, the Issuer is or sits behind a RATS Verifier.</t>
  <t><strong>Prover</strong> holds a Posture Assertion issued to it and presents the assertion when requested. In RATS-pipelined deployments, the Prover is the RATS Attester.</t>
  <t><strong>Requester</strong> asks for a Posture Assertion and decides, based on local policy, whether to issue a Permit. In RATS-pipelined deployments, the Requester is the RATS Relying Party.</t>
  <t><strong>Sponsor</strong> OPTIONALLY vouches for a Prover's identity at enrollment time (Section 10). The Sponsor role is <strong>not</strong> a RATS Endorser: RATS Endorsers issue Endorsements about an Attester's intrinsic platform capabilities, consumed by the Verifier upstream of any ZTNP exchange. The Sponsor is a deployment-time onboarding authority (orchestrator, CI/CD pipeline, owner) that participates in Assessed Enrollment.</t>
</list></t>

<t>A single agent typically begins as a Prover when asked to demonstrate posture, and acts as a Requester when calling other services.</t>

</section>
<section anchor="trust-model"><name>Trust Model</name>

<figure><artwork><![CDATA[
               +---------------+
               |    Issuer     |
               | (signs PAs,   |
               | publishes IKS)|
               +-------+-------+
                       |
                       | issues PA via Section 10 Enrollment
                       v
   +------------+              +------------+
   |  Sponsor   |---vouches--->|   Prover   |
   +------------+              +-----+------+
                                     |
                                     | presents PA + Permit
                                     v
                              +-------------+
                              |  Requester  |
                              | (verifies   |
                              |  PA against |
                              |  IKS, applies|
                              |  policy)    |
                              +-------------+
]]></artwork></figure>

<t>The trust relationships are:</t>

<t><list style="symbols">
  <t><strong>Requester → Issuer:</strong> The Requester has out-of-band trust in one or more Issuers, encoded in its policy. It verifies Posture Assertions against the Issuer's cached IKS.</t>
  <t><strong>Prover → Issuer:</strong> The Prover obtained its Posture Assertion from the Issuer via Enrollment (Section 10).</t>
  <t><strong>Sponsor → Prover:</strong> For Assessed Enrollment (Section 10), the Sponsor signs a vouching statement attesting to the Prover's identity.</t>
</list></t>

<t>ZTNP does not require any party to dial home to the Issuer at session establishment. Verification is local against a cached IKS.</t>

</section>
<section anchor="three-protocol-phases"><name>Three Protocol Phases</name>

<t><strong>Phase 1: Enrollment (per-agent, one-time).</strong> Section 10 specifies enrollment.</t>

<t><strong>Phase 2: Negotiation (per-session).</strong> The Requester issues a challenge nonce. The Prover responds with a Posture Assertion bound to the nonce. The Requester verifies the signature, evaluates local policy against the assertion's <spanx style="verb">framework_id</spanx>, <spanx style="verb">tier</spanx>, and <spanx style="verb">flags</spanx>, and either issues a Permit or returns a structured DENY. When the transport is TLS, the Permit is bound to the TLS session via channel binding (Section 8). Section 7 specifies negotiation.</t>

<t><strong>Phase 3: Validation (per-request).</strong> Each subsequent operation within the session presents the Permit. The receiving party validates the Permit signature, channel binding, scope, and (optionally) proof-of-possession. Section 8 specifies validation.</t>

</section>
<section anchor="what-ztnp-provides"><name>What ZTNP Provides</name>

<t>A successfully-negotiated ZTNP session provides the following machine-verifiable guarantees to the Requester:</t>

<t><list style="symbols">
  <t>The Prover's posture has been assessed by a known Issuer against an identified framework.</t>
  <t>The posture meets the Requester's policy as of the negotiation timestamp.</t>
  <t>The Permit cannot be lifted to a different TLS session.</t>
  <t>The scope of permitted actions is bounded and signed.</t>
</list></t>

<t>When ZTIP <xref target="I-D.miller-ztip"/> is also in use, additional guarantees apply: each request is bound to a specific signed intent, and the call chain is tied to a delegation chain back to a trusted root principal.</t>

</section>
<section anchor="concrete-role-examples"><name>Concrete Role Examples</name>

<t>The Roles defined in Section 3.1 (Requester, Prover, Issuer, Sponsor) are abstract. In practice the same entity may fill different roles in different interactions. Three concrete scenarios illustrate the pattern.</t>

<section anchor="scenario-a-agent-calls-a-tool-server-pa-r-resource-presents"><name>Scenario A: Agent Calls a Tool Server (PA-R / Resource-Presents)</name>

<t>An orchestrator agent wants to call an MCP tool server that exposes sensitive operations. The orchestrator wants to verify the tool server's posture against its policy before calling it.</t>

<texttable>
      <ttcol align='left'>Role</ttcol>
      <ttcol align='left'>Played by</ttcol>
      <ttcol align='left'>What it does</ttcol>
      <c><strong>Requester</strong></c>
      <c>The orchestrator agent</c>
      <c>Asks the tool server "show me your posture before I call you." Issues the Permit (or DENY) based on local policy.</c>
      <c><strong>Prover</strong></c>
      <c>The MCP tool server</c>
      <c>Holds a Posture Assertion issued by an Issuer; presents it on request, bound to the orchestrator's challenge nonce.</c>
      <c><strong>Issuer</strong></c>
      <c>A third-party assessor (e.g., a vendor or compliance auditor)</c>
      <c>Has previously assessed the tool server and signed its Posture Assertion. Publishes its IKS at a stable URL.</c>
</texttable>

<t>This is analogous to TLS server-certificate verification: the client (Requester) verifies the server (Prover) before trusting it. Most MCP integrations fit this pattern.</t>

</section>
<section anchor="scenario-b-tool-server-gates-callers-pa-c-caller-presents"><name>Scenario B: Tool Server Gates Callers (PA-C / Caller-Presents)</name>

<t>A tool server holding sensitive data — say, an HR-records lookup — wants to gate which callers may invoke it. The server requires callers to present a Posture Assertion meeting its policy before serving any request.</t>

<texttable>
      <ttcol align='left'>Role</ttcol>
      <ttcol align='left'>Played by</ttcol>
      <ttcol align='left'>What it does</ttcol>
      <c><strong>Requester</strong></c>
      <c>The tool server</c>
      <c>Asks each calling agent "show me your posture before I serve you." Issues the Permit per local policy.</c>
      <c><strong>Prover</strong></c>
      <c>The calling agent</c>
      <c>Holds a Posture Assertion proving its security and governance maturity; presents it on request.</c>
      <c><strong>Issuer</strong></c>
      <c>The agent's compliance assessor</c>
      <c>Has previously assessed the calling agent and signed its Posture Assertion.</c>
</texttable>

<t>This is analogous to mTLS client-certificate verification. The role assignment is the inverse of Scenario A.</t>

</section>
<section anchor="scenario-c-cross-organization-agent-collaboration-mutual"><name>Scenario C: Cross-Organization Agent Collaboration (Mutual)</name>

<t>Acme Corp's orchestrator agent needs to coordinate with a partner organization's data agent to complete a multi-step task. Both organizations want assurance about each other's posture.</t>

<texttable>
      <ttcol align='left'>Role</ttcol>
      <ttcol align='left'>Played by</ttcol>
      <ttcol align='left'>What it does</ttcol>
      <c><strong>Requester (and Prover)</strong></c>
      <c>Acme's orchestrator</c>
      <c>Verifies Partner's Posture Assertion AND presents its own.</c>
      <c><strong>Prover (and Requester)</strong></c>
      <c>Partner's data agent</c>
      <c>Verifies Acme's Posture Assertion AND presents its own.</c>
      <c><strong>Issuer (Acme side)</strong></c>
      <c>Acme's compliance assessor</c>
      <c>Has previously assessed Acme's orchestrator.</c>
      <c><strong>Issuer (Partner side)</strong></c>
      <c>Partner's compliance assessor (may differ)</c>
      <c>Has previously assessed Partner's data agent.</c>
</texttable>

<t>Both parties verify against the other's IKS. Acme might trust both its own assessor and a small set of approved third-party Issuers; Partner has its own trust list. Mutual mode requires both lists to overlap or both parties to accept the same Issuers.</t>

<t>In all three scenarios, the Sponsor role is <bcp14>OPTIONAL</bcp14> and only appears at enrollment time (Section 10) when an Issuer requires the Prover's identity be vouched for.</t>

</section>
</section>
</section>
<section anchor="trust-anchoring-background"><name>Trust Anchoring (Background)</name>

<t>This section is informative. It motivates the design choice that distinguishes ZTNP from earlier posture systems: anchoring tier semantics to an IANA-registered framework rather than to a specific Issuer.</t>

<section anchor="the-failure-mode"><name>The Failure Mode</name>

<t>A posture protocol must guarantee that the meaning of a claim is stable across the parties relying on it. Consider two agents calling a partner's data API. Agent A presents a Posture Assertion from Issuer X claiming <spanx style="verb">tier: 3</spanx>; Agent B presents one from Issuer Y, also <spanx style="verb">tier: 3</spanx>. The partner's policy engine sees two equally-acceptable agents.</t>

<t>In reality, Issuer X's tier 3 may mean "passed a 90-day continuous monitoring program against ISO/IEC 42001 controls" while Issuer Y's tier 3 means "self-attested at signup." The integer 3 is not a security guarantee; it is a marketing term mediated by Issuer documentation that the policy engine never reads. This is the <strong>trust anchoring problem</strong>: claims are only as portable as the semantic substrate they reference, and an integer without one is portable to nowhere.</t>

</section>
<section anchor="why-issuer-only-anchoring-fails"><name>Why Issuer-Only Anchoring Fails</name>

<t>A first-pass solution is to constrain policies on the Issuer:</t>

<figure><sourcecode type="json"><![CDATA[
{ "issuers": ["https://issuer-x.example"], "tier_min": 3 }
]]></sourcecode></figure>

<t>This eliminates cross-issuer tier confusion but at high cost: each Requester must explicitly trust each Issuer (vendor lock-in); a policy written for Issuer X cannot apply to Issuer Y (no portability); cross-organization deployments require bilateral trust meshes (no federation); and the semantic content of "tier 3" sits in PDF documentation outside the protocol's verification path (no semantic transparency). This is the failure mode that ailed early certificate-authority-centric PKI.</t>

</section>
<section anchor="the-right-anchor-frameworks"><name>The Right Anchor: Frameworks</name>

<t>The substantive content of a posture claim is <em>which framework was assessed and to what tier within that framework</em>. The Issuer is the party that performed the assessment — important for liability, but not the semantic anchor. A Posture Assertion that names its framework via a stable URI resolves the problem:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "framework_id": "https://nist.gov/airmf/1.0",
  "tier": 3,
  "iss": "https://issuer-x.example"
}
]]></sourcecode></figure>

<t>A Requester writes portable policy:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "framework_id": "https://nist.gov/airmf/1.0",
  "tier_min": 3
}
]]></sourcecode></figure>

<t>This accepts credentials from any Issuer attesting against NIST AI RMF 1.0 at tier 3 or higher. Adding a new compliant Issuer requires no policy change by any Requester.</t>

</section>
<section anchor="framework-identifiers-as-uris"><name>Framework Identifiers as URIs</name>

<t>ZTNP uses URIs as framework identifiers rather than allocating an IANA-managed integer registry. Three reasons:</t>

<t><list style="numbers" type="1">
  <t><strong>No appropriate gatekeeper exists.</strong> Security and governance frameworks are authored by NIST, ISO, OWASP, AICPA, the European Commission, individual vendors, and individual enterprises. Asking IANA to maintain a directory of these external bodies' work is outside IANA's normal protocol-parameter scope.</t>
  <t><strong>The flexibility is required for adoption.</strong> Vendors publishing proprietary trust profiles, enterprises operating internal compliance frameworks, open-source projects publishing domain-specific assurance frameworks, and standards bodies publishing emerging frameworks all need a way to identify their work without waiting for a central registry to allocate them an integer. URI-based identifiers make all four cases first-class.</t>
  <t><strong>The precedent exists in IETF practice.</strong> OAuth scope strings (RFC 6749), JOSE algorithm identifiers when not in the registered list, and JWT private claim names (RFC 7519 Section 4.3) all use URIs or URI-like collision-free names without IANA gatekeeping.</t>
</list></t>

<section anchor="uri-discipline"><name>URI Discipline</name>

<t>A framework_id URI <bcp14>SHOULD</bcp14>:</t>

<t><list style="symbols">
  <t>Be <strong>publicly resolvable</strong> at the time of issuance, so verifiers can look up the framework's specification.</t>
  <t><strong>Encode version in the path</strong> (<spanx style="verb">https://nist.gov/airmf/1.0</spanx>, not <spanx style="verb">https://nist.gov/airmf</spanx>) so that NIST AI RMF 1.0 and 2.0 are distinct identifiers.</t>
  <t><strong>Use a domain controlled by the framework's authoring organization</strong>, so anyone reading the URI can identify the publisher.</t>
  <t><strong>Resolve to a stable document</strong> (DOI, persistent URL, or organization's archival publication system).</t>
</list></t>

<t>Private and internal-only frameworks <bcp14>MAY</bcp14> use the <spanx style="verb">urn:</spanx> scheme: <spanx style="verb">urn:org.acme:internal-trust-framework:v1</spanx>. URIs not resolvable to a public document <bcp14>MUST NOT</bcp14> be presented in cross-organization deployments unless the parties have separately exchanged the framework's specification out-of-band.</t>

</section>
<section anchor="well-known-framework-uris-informative"><name>Well-Known Framework URIs (Informative)</name>

<t>The following URIs identify widely-recognized public frameworks at the time of this specification's publication. Implementations <bcp14>SHOULD</bcp14> use these URIs when their assertions are made against the corresponding frameworks. This list is informative; the canonical authority for each URI is the framework's authoring organization.</t>

<texttable>
      <ttcol align='left'>Framework</ttcol>
      <ttcol align='left'>Recommended framework_id URI</ttcol>
      <c>NIST AI Risk Management Framework 1.0</c>
      <c><spanx style="verb">https://doi.org/10.6028/NIST.AI.100-1</spanx></c>
      <c>ISO/IEC 42001:2023</c>
      <c><spanx style="verb">https://www.iso.org/standard/81230.html</spanx></c>
      <c>OWASP Top 10 for LLM Applications (2025)</c>
      <c><spanx style="verb">https://genai.owasp.org/llm-top-10/2025</spanx></c>
      <c>SOC 2 Trust Services Criteria (2017)</c>
      <c><spanx style="verb">https://www.aicpa-cima.com/resources/landing/system-and-organization-controls-soc-suite-of-services</spanx></c>
      <c>EU AI Act (Regulation (EU) 2024/1689)</c>
      <c><spanx style="verb">https://eur-lex.europa.eu/eli/reg/2024/1689/oj</spanx></c>
</texttable>

<t>These URIs <bcp14>SHOULD</bcp14> be updated by the relevant authoring organizations as their publications evolve. ZTNP implementations are not required to recognize this list; Requesters are required only to evaluate the URIs in their local policy.</t>

</section>
</section>
<section anchor="what-issuer-trust-still-means"><name>What Issuer Trust Still Means</name>

<t>Anchoring on framework does not eliminate the need to trust Issuers. A Requester still needs to know whether the entity claiming <spanx style="verb">framework_id: "https://nist.gov/airmf/1.0"</spanx> actually performed an NIST AI RMF assessment (answered by the Issuer's signature and IKS lookup), and whether the Issuer's assessment process is worth trusting (answered by local policy). Both anchoring dimensions can appear in a single policy; either dimension can stand alone.</t>

</section>
</section>
<section anchor="posture-assertion-format"><name>Posture Assertion Format</name>

<t>A Posture Assertion is a signed token containing machine-readable security posture claims about a Prover. ZTNP supports any signed token format meeting the requirements in this section. Implementations <bcp14>SHOULD</bcp14> use JWS <xref target="RFC7515"/> over JSON or COSE <xref target="RFC9052"/> over CBOR. JSON encoding is used in this specification for clarity.</t>

<t>When carried in ZTNP messages (Sections 7 and 9), the Posture Assertion appears in a JSON field named <spanx style="verb">pa</spanx>.</t>

<section anchor="required-claims"><name>Required Claims</name>

<t>A Posture Assertion payload <bcp14>MUST</bcp14> include:</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">ver</spanx></c>
      <c>string</c>
      <c>Posture Assertion format version (e.g., "0.2")</c>
      <c><spanx style="verb">iss</spanx></c>
      <c>string</c>
      <c>Issuer identifier (stable URI or DID)</c>
      <c><spanx style="verb">sub</spanx></c>
      <c>string</c>
      <c>Subject identifier for the Prover</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>integer</c>
      <c>Issued-at time, Unix seconds</c>
      <c><spanx style="verb">exp</spanx></c>
      <c>integer</c>
      <c>Expiration time, Unix seconds</c>
      <c><spanx style="verb">jti</spanx></c>
      <c>string</c>
      <c>Unique Posture Assertion identifier</c>
      <c><spanx style="verb">framework_id</spanx></c>
      <c>string (URI)</c>
      <c>URI identifying the security framework against which this assertion was made (Section 5.2).</c>
      <c><spanx style="verb">tier</spanx></c>
      <c>integer</c>
      <c>Tier value within the named framework_id. Tier semantics are defined by the framework, not by ZTNP.</c>
      <c><spanx style="verb">scope</spanx></c>
      <c>object</c>
      <c>What this assertion covers (Section 5.3)</c>
      <c><spanx style="verb">claims</spanx></c>
      <c>object</c>
      <c>Posture-specific claim payload (Section 5.4)</c>
      <c><spanx style="verb">bind</spanx></c>
      <c>object</c>
      <c>Challenge binding data (Section 5.5); <bcp14>REQUIRED</bcp14> unless mode is PA-R pre-fetch</c>
      <c><spanx style="verb">enrollment_mode</spanx></c>
      <c>string</c>
      <c>One of <spanx style="verb">self</spanx> or <spanx style="verb">assessed</spanx>. Determines the tier cap a Requester applies; see Section 11.</c>
</texttable>

<section anchor="private-and-public-claims"><name>Private and Public Claims</name>

<t>Implementations <bcp14>MAY</bcp14> include additional top-level claims beyond those in the table above. To avoid collisions with future ZTNP-defined claims, additional claims <bcp14>SHOULD</bcp14> use one of the following naming conventions, mirroring <xref target="RFC7519"/> Section 4:</t>

<t><list style="symbols">
  <t><strong>Public claims</strong>: collision-free names registered with IANA in the ZTNP Posture Assertion Top-Level Claim Names registry (Section 17), or names that are URIs (e.g., <spanx style="verb">https://acme.example/claims/internal-trust-level</spanx>).</t>
  <t><strong>Private claims</strong>: names agreed upon by the Issuer and the Requester out-of-band, and used only within deployments where both parties understand them.</t>
</list></t>

<t>Implementations <bcp14>MUST NOT</bcp14> redefine the meaning of any claim listed in the required-claims table above. Verifiers <bcp14>MUST</bcp14> ignore unrecognized claims they do not understand, except when the recognition of a claim is required by local policy.</t>

</section>
</section>
<section anchor="framework-identifier"><name>Framework Identifier</name>

<t>The <spanx style="verb">framework_id</spanx> claim is the protocol's anchor for the meaning of <spanx style="verb">tier</spanx> and any framework-specific structure within <spanx style="verb">claims.posture</spanx>. Section 4 motivates the design choice; this section specifies normative verification rules.</t>

<t><spanx style="verb">framework_id</spanx> <bcp14>MUST</bcp14> be a URI conforming to <xref target="RFC3986"/>. It identifies a particular versioned security or governance framework (e.g., NIST AI RMF 1.0, ISO/IEC 42001:2023, or a vendor-published or enterprise-internal framework).</t>

<t>Verification rules:</t>

<t><list style="numbers" type="1">
  <t>A Requester <bcp14>MUST</bcp14> treat a Posture Assertion whose <spanx style="verb">framework_id</spanx> is not in its policy's allowed-frameworks list as a non-match for that policy.</t>
  <t>A Requester <bcp14>MUST NOT</bcp14> compare <spanx style="verb">tier</spanx> values across different <spanx style="verb">framework_id</spanx> values. The same integer <spanx style="verb">tier: 3</spanx> under two different framework URIs describes two different things.</t>
  <t>A Requester <bcp14>MAY</bcp14> accept Posture Assertions from any well-formed <spanx style="verb">framework_id</spanx> URI for opportunistic logging (mode PA-O), but <bcp14>MUST NOT</bcp14> make access decisions based on framework URIs its policy does not understand.</t>
  <t>Verifiers <bcp14>SHOULD</bcp14> treat <spanx style="verb">framework_id</spanx> URIs as opaque identifiers for matching purposes — equality of URIs <bcp14>MUST</bcp14> be tested with byte-for-byte string comparison (case-sensitive, no normalization) to prevent ambiguity.</t>
</list></t>

<t>When a single assessment satisfies multiple frameworks (a common case — many ISO/IEC 42001 controls overlap with NIST AI RMF), the Issuer <bcp14>MAY</bcp14> include an <spanx style="verb">additional_frameworks</spanx> array:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "framework_id": "https://doi.org/10.6028/NIST.AI.100-1",
  "tier": 3,
  "additional_frameworks": [
    { "framework_id": "https://www.iso.org/standard/81230.html", "tier": 3 },
    { "framework_id": "https://genai.owasp.org/llm-top-10/2025", "tier": 2 }
  ]
}
]]></sourcecode></figure>

<t>Each entry <bcp14>MUST</bcp14> itself contain a <spanx style="verb">framework_id</spanx> URI and a <spanx style="verb">tier</spanx> integer. Requesters <bcp14>MAY</bcp14> consult <spanx style="verb">additional_frameworks</spanx> for policy matching; if a Requester's policy specifies <spanx style="verb">framework_id: X</spanx>, a Posture Assertion whose primary <spanx style="verb">framework_id</spanx> is Y but whose <spanx style="verb">additional_frameworks</spanx> includes <spanx style="verb">{framework_id: X, tier: T}</spanx> <bcp14>SHOULD</bcp14> match the policy at tier T. The same per-framework constraints in this section apply to additional_frameworks entries.</t>

<section anchor="non-integer-tier-outcomes"><name>Non-Integer Tier Outcomes</name>

<t>The <spanx style="verb">tier</spanx> field is normatively an integer in this specification. Some frameworks express assessment outcomes as letter grades (A, B, C, D), maturity-model levels with named labels ("Initial", "Defined", "Managed"), or other non-integer schemes. Frameworks using such outcomes <bcp14>MUST</bcp14> publish an integer mapping in their framework definition (e.g., A=4, B=3, C=2, D=1) and <bcp14>MUST</bcp14> publish that mapping at the <spanx style="verb">framework_id</spanx> URI alongside the framework's specification. Issuers attesting against such frameworks emit the mapped integer in the <spanx style="verb">tier</spanx> field; Requesters consulting the framework definition can reason about the mapping when needed for human-readable display, but compare <spanx style="verb">tier</spanx> values numerically.</t>

<t>This rule keeps the wire format simple (single integer comparison) while accommodating frameworks whose human-facing taxonomy is non-numeric.</t>

</section>
</section>
<section anchor="scope"><name>Scope</name>

<t><spanx style="verb">scope</spanx> <bcp14>MUST</bcp14> include:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">kind</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c>One of: <spanx style="verb">agent</spanx>, <spanx style="verb">service</spanx>, <spanx style="verb">tool</spanx>, <spanx style="verb">model</spanx>, <spanx style="verb">environment</spanx></c>
      <c><spanx style="verb">target</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c>Canonical identifier of the subject instance</c>
      <c><spanx style="verb">env</spanx></c>
      <c>string</c>
      <c>No</c>
      <c>Environment label (e.g., <spanx style="verb">prod</spanx>, <spanx style="verb">staging</spanx>)</c>
      <c><spanx style="verb">components</spanx></c>
      <c>array</c>
      <c>No</c>
      <c>Component identifiers covered by this assertion</c>
</texttable>

<t>A Requester <bcp14>MUST</bcp14> verify that the <spanx style="verb">sub</spanx> and <spanx style="verb">scope.target</spanx> match the entity it intended to interact with.</t>

</section>
<section anchor="claims-payload"><name>Claims Payload</name>

<t><spanx style="verb">claims</spanx> is a flexible object whose structure is partially defined by the assertion's framework_id. Base ZTNP requires:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">flags</spanx></c>
      <c>object</c>
      <c>Yes</c>
      <c>Boolean flags for critical gating</c>
      <c><spanx style="verb">posture</spanx></c>
      <c>object</c>
      <c>No</c>
      <c>Framework-defined claim structure</c>
      <c><spanx style="verb">assessment_method</spanx></c>
      <c>string</c>
      <c><bcp14>SHOULD</bcp14></c>
      <c>Methodology used to produce this assertion (see below)</c>
      <c><spanx style="verb">policy_id</spanx></c>
      <c>string (URI)</c>
      <c>No</c>
      <c><bcp14>OPTIONAL</bcp14> Issuer-published identifier for the specific appraisal policy applied (see below)</c>
</texttable>

<t><spanx style="verb">flags</spanx> <bcp14>SHOULD</bcp14> include, where applicable: <spanx style="verb">critical_open</spanx>, <spanx style="verb">incident_open</spanx>, <spanx style="verb">pii_access_allowed</spanx>, <spanx style="verb">secrets_access_allowed</spanx>, <spanx style="verb">code_exec_allowed</spanx>. Flag names are administered by the IANA ZTNP Posture Assertion Flag Names Registry (Section 17).</t>

<t><spanx style="verb">posture</spanx> carries framework-specific structured data; the shape depends on the framework identified by <spanx style="verb">framework_id</spanx>. Profiles (Section 13) document the <spanx style="verb">posture</spanx> shape for their framework.</t>

<t>The <spanx style="verb">claims.posture.ai_behavior</spanx> sub-namespace within <spanx style="verb">claims.posture</spanx> is reserved for Behavioral Claims as defined in Section 5 of <xref target="I-D.miller-ztip"/>. Posture Assertions composed with ZTIP carry behavioral safety properties (e.g., <spanx style="verb">prompt_injection_tested</spanx>, <spanx style="verb">tool_call_audit_logged</spanx>) under this namespace. Verifiers that do not implement ZTIP <bcp14>MUST</bcp14> ignore unrecognized fields under <spanx style="verb">claims.posture.ai_behavior</spanx> per the unrecognized-claim rule below; ZTIP's composition profile (Section 6.1 of <xref target="I-D.miller-ztip"/>) gives the full schema.</t>

<section anchor="appraisal-policy-identifier"><name>Appraisal Policy Identifier</name>

<t><spanx style="verb">policy_id</spanx> is an <bcp14>OPTIONAL</bcp14> URI naming the specific Issuer-published appraisal policy (rule set, control mapping, scoring rubric) applied to produce this Posture Assertion. It is finer-grained than <spanx style="verb">assessment_method</spanx>: where <spanx style="verb">assessment_method</spanx> describes the <em>kind</em> of evaluation (deterministic, scanner-based, human, LLM, hybrid), <spanx style="verb">policy_id</spanx> identifies the <em>exact</em> policy version applied.</t>

<t>A Requester's policy <bcp14>MAY</bcp14> require a specific <spanx style="verb">policy_id</spanx> (or set of acceptable <spanx style="verb">policy_id</spanx> values) for high-stakes interactions where the Issuer's published policy version is part of the trust decision. This is the natural integration point for deployments that wish to consume RATS Verifier Appraisal Policy identifiers, AR4SI policy identifiers, or any other Issuer-defined policy URI; ZTNP treats the value as opaque and matches by exact URI equality.</t>

</section>
<section anchor="assessment-method"><name>Assessment Method</name>

<t><spanx style="verb">assessment_method</spanx> is a <bcp14>SHOULD</bcp14>-include claim describing the methodology by which the Issuer produced this Posture Assertion. It allows Requesters to filter on methodology when their policy requires (for example, a policy may decline to accept tier-3 assertions produced solely by an LLM evaluator).</t>

<t>Common values:</t>

<texttable>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c><spanx style="verb">deterministic_checklist</spanx></c>
      <c>Evidence checked against a fixed rule set with deterministic pass/fail.</c>
      <c><spanx style="verb">automated_scan</spanx></c>
      <c>Programmatic scanning (vulnerability scanners, configuration auditors, static analyzers).</c>
      <c><spanx style="verb">human_review</spanx></c>
      <c>Human-led assessment by qualified reviewers.</c>
      <c><spanx style="verb">llm_evaluator</spanx></c>
      <c>Evaluation conducted by a language model interpreting evidence.</c>
      <c><spanx style="verb">hybrid</spanx></c>
      <c>Combination of two or more of the above.</c>
      <c><spanx style="verb">unspecified</spanx></c>
      <c>Methodology not disclosed; Requesters <bcp14>SHOULD</bcp14> treat with greater caution.</c>
</texttable>

<t>Profile documents <bcp14>MAY</bcp14> define additional values for their domain. The IANA ZTNP Assessment Method Names Registry (Section 17) administers cross-profile values.</t>

<t>A Requester's policy <bcp14>MAY</bcp14> include an <spanx style="verb">assessment_method_allowed</spanx> constraint listing acceptable values; Posture Assertions whose <spanx style="verb">assessment_method</spanx> is outside this list <bcp14>MUST</bcp14> be rejected with <spanx style="verb">POLICY_METHOD_MISMATCH</spanx>. Requesters concerned with non-determinism in evaluation (e.g., LLM-evaluator output varying between models or runs) <bcp14>SHOULD</bcp14> set this constraint explicitly.</t>

</section>
</section>
<section anchor="challenge-binding"><name>Challenge Binding</name>

<t>To prevent replay, Posture Assertions issued during a ZTNP Negotiation exchange <bcp14>MUST</bcp14> be bound to the Requester's challenge nonce.</t>

<t><spanx style="verb">bind</spanx> <bcp14>MUST</bcp14> include:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">method</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c><spanx style="verb">nonce_hash</spanx> or <spanx style="verb">nonce_sig</spanx></c>
      <c><spanx style="verb">nonce</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c>Hashed or plaintext challenge nonce</c>
      <c><spanx style="verb">ctx</spanx></c>
      <c>string</c>
      <c>No</c>
      <c>Session context string</c>
      <c><spanx style="verb">aud</spanx></c>
      <c>string</c>
      <c>No</c>
      <c>Requester identifier</c>
</texttable>

<t>Method A: <spanx style="verb">nonce_hash</spanx> (<bcp14>REQUIRED</bcp14> to implement). <spanx style="verb">bind.nonce</spanx> <bcp14>MUST</bcp14> be <spanx style="verb">base64url(SHA-256(challenge_nonce || ctx || aud))</spanx>. Verification: the Requester recomputes and compares.</t>

<t>Method B: <spanx style="verb">nonce_sig</spanx> (<bcp14>OPTIONAL</bcp14>). <spanx style="verb">bind.nonce</spanx> contains the plaintext challenge_nonce. The Prover returns a detached signature <spanx style="verb">binding_sig</spanx> over <spanx style="verb">(challenge_nonce || jti || sub)</spanx> using its <spanx style="verb">subject_key</spanx>. Both signatures <bcp14>MUST</bcp14> verify.</t>

<t>Pre-fetched Posture Assertions (PA-R mode) <bcp14>MAY</bcp14> omit <spanx style="verb">bind</spanx>; Requesters <bcp14>MUST</bcp14> apply stricter freshness policy (<bcp14>RECOMMENDED</bcp14> max age 1 hour).</t>

<t><strong>Freshness model.</strong> ZTNP's <spanx style="verb">bind.nonce</spanx> mechanism corresponds to the Nonce-based freshness model described in <xref target="RFC9334"/> Section 10 (in deployments that use RATS as the upstream attestation pipeline; the same mechanism applies independently in non-RATS deployments). ZTNP does not currently specify an Epoch-ID or Time-of-Receipt freshness model; deployments that require those models <bcp14>SHOULD</bcp14> layer them in profile documents.</t>

</section>
<section anchor="algorithm-agility"><name>Algorithm Agility</name>

<t>ZTNP is algorithm-agnostic. Implementations <bcp14>MUST</bcp14> support at least one secure asymmetric signature scheme. Post-quantum signature schemes (e.g., ML-DSA per <xref target="FIPS204"/>) <bcp14>MAY</bcp14> be used and are <bcp14>RECOMMENDED</bcp14> for long-lived deployments.</t>

<t>Requesters <bcp14>MUST</bcp14> reject Posture Assertions that use an algorithm not in the allowed list, reference a <spanx style="verb">kid</spanx> not in the IKS, have <spanx style="verb">exp</spanx> in the past, have <spanx style="verb">iat</spanx> in the future beyond clock skew, carry an unregistered framework_id, or fail challenge-binding verification.</t>

</section>
<section anchor="versioning-of-ver"><name>Versioning of <spanx style="verb">ver</spanx></name>

<t>The <spanx style="verb">ver</spanx> claim uses semantic versioning: MAJOR.MINOR.PATCH. Implementations <bcp14>MUST</bcp14> reject Posture Assertions with an unsupported MAJOR version.</t>

<t>The MAJOR / MINOR / PATCH boundaries are defined as follows:</t>

<t><strong>MAJOR version increment</strong> is <bcp14>REQUIRED</bcp14> when any of the following changes:</t>

<t><list style="symbols">
  <t>A required claim is added, removed, or renamed.</t>
  <t>The canonical-form serialization for a signed payload changes (e.g., switching from JCS to a different canonicalization).</t>
  <t>A binding method (<spanx style="verb">nonce_hash</spanx>, <spanx style="verb">nonce_sig</spanx>, channel binding) is removed.</t>
  <t>The interpretation of a required claim's value changes such that previously-valid Posture Assertions are now interpreted incorrectly.</t>
</list></t>

<t><strong>MINOR version increment</strong> is <bcp14>REQUIRED</bcp14> when any of the following changes:</t>

<t><list style="symbols">
  <t>A new optional claim is added.</t>
  <t>A new binding method is added (existing methods continue to work).</t>
  <t>A new flag is added to the IANA Posture Assertion Flag Names Registry.</t>
  <t>A new constraint type, reason code, or assessment-method value is added.</t>
  <t>An existing optional claim's permitted value range is widened.</t>
</list></t>

<t><strong>PATCH version increment</strong> is appropriate for editorial-only changes: prose clarifications, table reformatting, reference updates that do not change normative behavior.</t>

<t>Implementations encountering a Posture Assertion with a MAJOR they support but a MINOR newer than they recognize <bcp14>MUST</bcp14> process the assertion's required claims normally and <bcp14>SHOULD</bcp14> ignore unrecognized optional claims (unless their policy depends on those claims). This rule preserves forward compatibility within a MAJOR version.</t>

</section>
</section>
<section anchor="issuer-key-set-iks"><name>Issuer Key Set (IKS)</name>

<section anchor="iks-endpoint"><name>IKS Endpoint</name>

<t>Each Issuer <bcp14>MUST</bcp14> publish a key set endpoint containing active public keys and metadata. This endpoint is the Issuer Key Set (IKS) and is analogous to a JWKS endpoint <xref target="RFC7517"/>.</t>

<t>The IKS <bcp14>MUST</bcp14> provide: Issuer identifier (<spanx style="verb">iss</spanx>); Key identifiers (<spanx style="verb">kid</spanx>); Algorithm identifiers (<spanx style="verb">alg</spanx>); Public key material; Key validity windows (<bcp14>RECOMMENDED</bcp14>).</t>

<t>IKS endpoints <bcp14>MUST</bcp14> be served over HTTPS <xref target="RFC9110"/>.</t>

</section>
<section anchor="key-rotation-and-caching"><name>Key Rotation and Caching</name>

<t>Requesters <bcp14>MUST</bcp14> verify Posture Assertion signatures using keys obtained from the IKS corresponding to the assertion's <spanx style="verb">iss</spanx> claim.</t>

<t>Requesters <bcp14>MUST</bcp14> cache IKS responses with a bounded TTL (<bcp14>RECOMMENDED</bcp14>: 1 hour). Requesters <bcp14>MUST</bcp14> handle key rotation by periodically re-fetching the IKS and <bcp14>MUST NOT</bcp14> accept Posture Assertions whose <spanx style="verb">kid</spanx> is not present in a freshly-fetched IKS.</t>

<t>Issuers <bcp14>SHOULD</bcp14> support overlap windows during rotation: both the retiring and the incoming keys present in the IKS for a period sufficient to cover Requester cache TTLs.</t>

</section>
</section>
<section anchor="negotiation"><name>Negotiation</name>

<t>ZTNP negotiation has four steps: Discovery, Challenge, Proof, and Decision. The selected Binding Mode (Section 7.5) determines which party plays Prover at which step. Wire-encoding details are in Section 9.</t>

<section anchor="discovery"><name>Discovery</name>

<t>R → P: <spanx style="verb">DISCOVER</spanx> (optional metadata hint)</t>

<t>P → R: <spanx style="verb">DISCOVER_RESPONSE</spanx></t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">ztnp_version</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c>Highest ZTNP version supported by P</c>
      <c><spanx style="verb">sub</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c>Prover subject identifier</c>
      <c><spanx style="verb">issuers</spanx></c>
      <c>array</c>
      <c>Yes</c>
      <c>Issuer identifiers whose Posture Assertions P can present</c>
      <c><spanx style="verb">frameworks</spanx></c>
      <c>array</c>
      <c>Yes</c>
      <c>Framework identifiers (registered) P's Posture Assertions cover</c>
      <c><spanx style="verb">iks_urls</spanx></c>
      <c>array</c>
      <c>No</c>
      <c>Direct links to Issuer Key Set endpoints</c>
      <c><spanx style="verb">modes</spanx></c>
      <c>array</c>
      <c>Yes</c>
      <c>Supported binding modes</c>
      <c><spanx style="verb">features</spanx></c>
      <c>array</c>
      <c>No</c>
      <c>Optional capability strings</c>
</texttable>

<t>The <spanx style="verb">frameworks</spanx> field is <bcp14>REQUIRED</bcp14>.</t>

</section>
<section anchor="challenge"><name>Challenge</name>

<t>R → P: <spanx style="verb">CHALLENGE</spanx></t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">challenge_nonce</spanx></c>
      <c>bytes</c>
      <c>Yes</c>
      <c>Cryptographically random, 16-32 bytes, base64url-encoded</c>
      <c><spanx style="verb">ctx</spanx></c>
      <c>string</c>
      <c>No</c>
      <c>Session context string</c>
      <c><spanx style="verb">aud</spanx></c>
      <c>string</c>
      <c>No</c>
      <c>Requester identifier</c>
      <c><spanx style="verb">mode</spanx></c>
      <c>string</c>
      <c>No</c>
      <c>Requested binding mode</c>
      <c><spanx style="verb">framework_required</spanx></c>
      <c>array</c>
      <c>No</c>
      <c>Frameworks the Requester's policy will accept</c>
</texttable>

</section>
<section anchor="proof"><name>Proof</name>

<t>P → R: <spanx style="verb">PROOF</spanx></t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">pa</spanx></c>
      <c>signed token</c>
      <c>Yes</c>
      <c>The challenge-bound Posture Assertion</c>
      <c><spanx style="verb">binding_sig</spanx></c>
      <c>signature</c>
      <c>If <spanx style="verb">nonce_sig</spanx></c>
      <c>Detached subject signature for <spanx style="verb">nonce_sig</spanx> binding</c>
      <c><spanx style="verb">prover_meta</spanx></c>
      <c>object</c>
      <c>No</c>
      <c>Implementation info, declared capabilities</c>
</texttable>

<t>When ZTIP is in use, the PROOF additionally carries a <spanx style="verb">delegation_chain</spanx> field; see <xref target="I-D.miller-ztip"/>.</t>

</section>
<section anchor="decision"><name>Decision</name>

<t>The Requester <bcp14>MUST</bcp14> respond with PERMIT or DENY.</t>

<t>R → P: <spanx style="verb">PERMIT</spanx> — Section 8 specifies the Permit format.</t>

<t>R → P: <spanx style="verb">DENY</spanx> — <spanx style="verb">reasons</spanx> (array of machine-readable codes plus human text), <spanx style="verb">required_improvements</spanx> (optional advisory).</t>

</section>
<section anchor="binding-modes"><name>Binding Modes</name>

<t>A Binding Mode specifies the <strong>direction</strong> of Posture Assertion exchange — which party presents, which party verifies, or both.</t>

<section anchor="pa-r-resource-presents"><name>PA-R (Resource-Presents)</name>

<t>The Prover (typically a tool server) presents its Posture Assertion to the Requester before the Requester proceeds.</t>

</section>
<section anchor="pa-c-caller-presents"><name>PA-C (Caller-Presents)</name>

<t>The Requester presents its Posture Assertion to the Prover.</t>

</section>
<section anchor="mutual"><name>Mutual</name>

<t>Both parties exchange and verify Posture Assertions before proceeding.</t>

</section>
</section>
<section anchor="adoption-posture"><name>Adoption Posture</name>

<t>A Binding Mode specifies <em>who presents to whom</em>; the Adoption Posture specifies <em>what the Requester does when the expected Posture Assertion is absent or fails policy</em>. The two are orthogonal: any Binding Mode <bcp14>MAY</bcp14> be operated under any Adoption Posture.</t>

<texttable>
      <ttcol align='left'>Posture</ttcol>
      <ttcol align='left'>Behavior on missing or failing PA</ttcol>
      <c><spanx style="verb">required</spanx></c>
      <c>Requester denies the session. Default for production deployments.</c>
      <c><spanx style="verb">monitor-only</spanx></c>
      <c>Requester proceeds with the session, logs the failure, and emits a structured signal to its observability pipeline. No Permit-gated authorization is established for failed PAs; deployments using <spanx style="verb">monitor-only</spanx> accept that the session proceeds without ZTNP-level authorization.</c>
      <c><spanx style="verb">opportunistic</spanx></c>
      <c>Requester proceeds <em>and</em> issues a Permit even when no Posture Assertion is presented. The Permit's <spanx style="verb">claims.adoption_posture</spanx> <bcp14>MUST</bcp14> record <spanx style="verb">"opportunistic"</spanx> so downstream auditors can identify sessions authorized without a posture credential. <bcp14>RECOMMENDED</bcp14> only during progressive adoption windows.</c>
</texttable>

<t>The Adoption Posture is a Requester-side policy choice. It is announced (where relevant) in the Requester's CHALLENGE message via an <bcp14>OPTIONAL</bcp14> <spanx style="verb">adoption_posture</spanx> field, but the authoritative value is the one applied by the Requester at decision time. Provers cannot influence the Requester's Adoption Posture.</t>

<t>Default Adoption Posture is <spanx style="verb">required</spanx>. Implementations <bcp14>SHOULD</bcp14> log the Adoption Posture applied to every issued or denied Permit.</t>

</section>
<section anchor="policy-evaluation"><name>Policy Evaluation</name>

<t>Policies are local to the Requester. ZTNP standardizes inputs and outputs while leaving policy language implementation-defined.</t>

<t>Policies that gate on <spanx style="verb">tier_min</spanx> <bcp14>MUST</bcp14> specify either <spanx style="verb">framework_id</spanx> or a non-empty <spanx style="verb">issuers_allowed</spanx> set. Policies specifying <spanx style="verb">tier_min</spanx> alone are incomplete and <bcp14>SHOULD</bcp14> be rejected (reason: <spanx style="verb">POLICY_INCOMPLETE</spanx>).</t>

<t>Standard constraint types (administered by IANA, Section 15): <spanx style="verb">data</spanx>, <spanx style="verb">actions</spanx>, <spanx style="verb">rate_limit</spanx>, <spanx style="verb">ttl</spanx>, <spanx style="verb">redaction</spanx>, <spanx style="verb">tools</spanx>.</t>

</section>
</section>
<section anchor="permit-format-and-validation"><name>Permit Format and Validation</name>

<t>A Permit is a Requester-issued, short-lived authorization artifact returned after a successful <spanx style="verb">allow</spanx> or <spanx style="verb">allow_with_constraints</spanx> decision.</t>

<section anchor="required-fields"><name>Required Fields</name>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">iss</spanx></c>
      <c>string</c>
      <c>Requester identifier</c>
      <c><spanx style="verb">sub</spanx></c>
      <c>string</c>
      <c>Prover identifier</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>integer</c>
      <c>Issued-at, Unix seconds</c>
      <c><spanx style="verb">exp</spanx></c>
      <c>integer</c>
      <c>Expiration, Unix seconds</c>
      <c><spanx style="verb">permit_id</spanx></c>
      <c>string</c>
      <c>Unique permit identifier</c>
      <c><spanx style="verb">constraints</spanx></c>
      <c>object</c>
      <c>Enforced constraints (may be empty)</c>
      <c><spanx style="verb">ch_binding</spanx></c>
      <c>object</c>
      <c>Channel binding (<bcp14>REQUIRED</bcp14> when transport is TLS, see Section 8.2)</c>
      <c><spanx style="verb">cnf</spanx></c>
      <c>object</c>
      <c><bcp14>OPTIONAL</bcp14> Proof-of-Possession key confirmation (Section 12)</c>
</texttable>

<t>When ZTIP is in use, additional fields (<spanx style="verb">intent_hash</spanx>, <spanx style="verb">intent_scope</spanx>, <spanx style="verb">chain_root_iss</spanx>, <spanx style="verb">chain_root_jti</spanx>) appear; see <xref target="I-D.miller-ztip"/>.</t>

<t>Permits <bcp14>MUST</bcp14> be signed by the Requester. Provers <bcp14>MUST</bcp14> include the Permit in subsequent requests. Permits <bcp14>MUST NOT</bcp14> be reused across sessions.</t>

</section>
<section anchor="channel-binding-mandatory-when-tls"><name>Channel Binding (Mandatory when TLS)</name>

<t>When the ZTNP exchange occurs over TLS, the Permit <bcp14>MUST</bcp14> include a channel binding tying it to the specific TLS session via TLS exporter material per <xref target="RFC9266"/>. This prevents a Permit obtained on one TLS connection from being used on a different connection.</t>

<t><spanx style="verb">ch_binding</spanx> <bcp14>MUST</bcp14> include:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">method</spanx></c>
      <c><spanx style="verb">"tls-exporter"</spanx></c>
      <c><spanx style="verb">label</spanx></c>
      <c>Exporter label (<bcp14>REQUIRED</bcp14> to use <spanx style="verb">"EXPORTER-ZTNP-permit-binding"</spanx>)</c>
      <c><spanx style="verb">context_hash</spanx></c>
      <c><spanx style="verb">base64url(SHA-256(tls_exporter_output))</spanx> per <xref target="RFC8446"/> Section 7.5</c>
</texttable>

<t>Provers <bcp14>MUST</bcp14> recompute the exporter and verify the hash matches. Mismatch causes rejection with <spanx style="verb">PERMIT_CHANNEL_MISMATCH</spanx>.</t>

<t>If the transport does not provide TLS keying material, the Permit <bcp14>MUST</bcp14> still carry a <spanx style="verb">ch_binding</spanx> object. Three values for <spanx style="verb">ch_binding.method</spanx> are permitted in this case:</t>

<t><list style="numbers" type="1">
  <t>A profile-defined transport-equivalent binding mechanism registered in the IANA ZTNP Channel Binding Method Registry (Section 17). The MCP profile's <spanx style="verb">mcp-process-ephemeral-key</spanx> (for stdio transport) is the first concrete instance.</t>
  <t>The literal value <spanx style="verb">"none"</spanx>, accompanied by a <bcp14>REQUIRED</bcp14> <spanx style="verb">ch_binding.rationale</spanx> string explaining why no binding is provided (e.g., <spanx style="verb">"closed in-process IPC, single-tenant trust boundary"</spanx>). Receivers <bcp14>MUST</bcp14> log the rationale and <bcp14>MAY</bcp14> reject Permits whose <spanx style="verb">method</spanx> is <spanx style="verb">"none"</spanx> per local policy.</t>
  <t>Any other value defined by a profile document that publishes its semantics; such values <bcp14>MUST</bcp14> be registered before deployment in cross-organization use.</t>
</list></t>

<t>Silent omission of <spanx style="verb">ch_binding</spanx> is <strong>not</strong> permitted: a conforming Permit always carries an explicit binding declaration, even if that declaration is <spanx style="verb">"none"</spanx> plus rationale. This makes the absence of channel binding visible in audit logs rather than implicit in the wire format.</t>

<t>Implementations claiming "ZTNP" conformance <bcp14>MUST</bcp14> implement and enforce channel binding when their declared transport is TLS, and <bcp14>MUST</bcp14> emit either a registered transport-equivalent method or <spanx style="verb">method: "none"</spanx> with rationale otherwise.</t>

</section>
<section anchor="permit-validation"><name>Permit Validation</name>

<t>For each request carrying a Permit, the receiving party <bcp14>MUST</bcp14> validate:</t>

<t><list style="numbers" type="1">
  <t>The Permit signature is valid against the issuing Requester's key.</t>
  <t><spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx> are valid within bounded clock skew.</t>
  <t>The current TLS session's exporter output matches <spanx style="verb">ch_binding.context_hash</spanx> (when present).</t>
  <t>The requested operation is within the Permit's <spanx style="verb">constraints</spanx>.</t>
  <t>(If <spanx style="verb">cnf</spanx> present) A valid Proof-of-Possession proof per Section 12.</t>
  <t>(If ZTIP in use) The operation is within the Permit's <spanx style="verb">intent_scope</spanx>.</t>
</list></t>

<t>Validation is local; no central authority is consulted at request time.</t>

</section>
</section>
<section anchor="wire-encodings"><name>Wire Encodings</name>

<t>ZTNP defines a transport-binding model. Specific transport profiles are published as separate documents; this section describes the binding shape and lists current profiles.</t>

<t>A wire-encoding profile <bcp14>MUST</bcp14> specify how the abstract messages of Section 7 (DISCOVER, DISCOVER_RESPONSE, CHALLENGE, PROOF, PERMIT, DENY) are carried over the transport, and <bcp14>MUST</bcp14> satisfy:</t>

<t><list style="symbols">
  <t>All messages serialized in a deterministic, machine-parsable format.</t>
  <t>All endpoints serving over a confidential transport (typically TLS) when the deployment threat model warrants.</t>
  <t>Channel binding (Section 8.2) applied when the transport provides TLS keying material.</t>
</list></t>

<t>Current profiles:</t>

<texttable>
      <ttcol align='left'>Profile</ttcol>
      <ttcol align='left'>Document</ttcol>
      <ttcol align='left'>Status</ttcol>
      <c>HTTP</c>
      <c>(Working notes in repository)</c>
      <c>Working draft</c>
      <c>MCP (Model Context Protocol)</c>
      <c><spanx style="verb">draft-miller-ztnp-mcp-profile-00</spanx></c>
      <c>Internet-Draft</c>
      <c>A2A (Agent-to-Agent Protocol)</c>
      <c><spanx style="verb">draft-miller-ztnp-a2a-profile-00</spanx></c>
      <c>Internet-Draft</c>
</texttable>

<t>Implementations <bcp14>MAY</bcp14> support additional transports by publishing a profile document.</t>

</section>
<section anchor="enrollment-requirements"><name>Enrollment Requirements</name>

<t>ZTNP does not specify a new enrollment wire format. How a Prover obtains its first Posture Assertion is a deployment choice; existing IETF and industry mechanisms — Dynamic Client Registration <xref target="RFC7591"/>/<xref target="RFC7592"/>, RATS attestation flows <xref target="RFC9334"/>, and supply-chain transparency registries (e.g., SCITT <xref target="SCITT-ARCH"/>) — already cover the wire-level concerns and <bcp14>SHOULD</bcp14> be reused. This section defines only the abstract requirements that any enrollment mechanism <bcp14>MUST</bcp14> satisfy for the resulting Posture Assertions to be ZTNP-conformant, and a single security property (the Self-Enrollment tier cap) that ZTNP relies on for its overall trust model.</t>

<section anchor="abstract-requirements"><name>Abstract Requirements</name>

<t>Any enrollment mechanism that produces a Posture Assertion that will be presented over ZTNP <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t><strong>Bind the assertion to a subject key.</strong> The Issuer <bcp14>MUST</bcp14> bind the Posture Assertion to a public key held by the Prover. The Prover <bcp14>MUST</bcp14> be able to demonstrate possession of the corresponding private key during ZTNP negotiation (Section 7).</t>
  <t><strong>Establish the Issuer's signing key publicly.</strong> The Issuer <bcp14>MUST</bcp14> publish its public keys at an Issuer Key Set (Section 6) so that Requesters can verify Posture Assertions offline.</t>
  <t><strong>Record the enrollment mode.</strong> The Posture Assertion <bcp14>MUST</bcp14> carry the <spanx style="verb">enrollment_mode</spanx> claim (Section 5) with a value of <spanx style="verb">self</spanx> or <spanx style="verb">assessed</spanx>. This is the only enrollment-related signal ZTNP requires inside the assertion; it is what enforces the tier cap below.</t>
  <t><strong>Support revocation.</strong> The Issuer <bcp14>MUST</bcp14> be able to revoke a Posture Assertion if the underlying enrollment is invalidated. The mechanism is unconstrained — short-lived assertions with natural expiry, OCSP-style status endpoints, and revocation lists are all acceptable.</t>
</list></t>

</section>
<section anchor="enrollment-modes-and-the-tier-cap"><name>Enrollment Modes and the Tier Cap</name>

<t>ZTNP distinguishes two enrollment modes, recorded in the <spanx style="verb">enrollment_mode</spanx> claim of every issued Posture Assertion:</t>

<t><list style="symbols">
  <t><strong><spanx style="verb">self</spanx></strong> (Self-Enrollment): the Issuer performed only proof-of-possession of the Prover's <spanx style="verb">subject_key</spanx>. No third party vouched for the Prover's identity or posture.</t>
  <t><strong><spanx style="verb">assessed</spanx></strong> (Assessed Enrollment): the Issuer performed an actual posture assessment of the Prover, optionally consuming a Sponsor's vouching statement (Section 10.4) and any upstream attestation Evidence. Where RATS is the upstream pipeline, the Issuer is or sits behind a RATS Verifier; where it is not, the Issuer's evaluation is whatever methodology its <spanx style="verb">assessment_method</spanx> claim declares.</t>
</list></t>

<t><strong>Tier cap (load-bearing security property):</strong> A Posture Assertion with <spanx style="verb">enrollment_mode: "self"</spanx> <bcp14>MUST NOT</bcp14> carry <spanx style="verb">tier &gt; 1</spanx>. Issuers <bcp14>MUST NOT</bcp14> issue, and Requesters <bcp14>MUST</bcp14> reject, Self-Enrolled assertions claiming higher tier.</t>

<t>This cap is what allows Requesters to apply differentiated policy ("require tier ≥ 2") with confidence that no Self-Enrolled subject can clear the bar. The cap is enforced from the Posture Assertion alone — Requesters do not need to know which wire format was used at enrollment time.</t>

</section>
<section anchor="sponsor-role"><name>Sponsor Role</name>

<t>When an enrollment uses the <spanx style="verb">assessed</spanx> mode, an <bcp14>OPTIONAL</bcp14> <strong>Sponsor</strong> <bcp14>MAY</bcp14> participate. The Sponsor's role is to vouch for the Prover's identity at enrollment time (typically: "this software-image hash corresponds to this organization's published artifact," "this CI/CD pipeline produced this build," "this owner authorizes this agent to enroll under this identity"), separate from the Issuer's role of evaluating posture. The Sponsor's signature on a vouching statement is a deployment concern; ZTNP imposes no constraints on its format.</t>

<t>The Sponsor role is <strong>distinct from the RATS Endorser role</strong> <xref target="RFC9334"/>: a RATS Endorser issues Endorsements about an Attester's intrinsic platform capabilities, consumed by a Verifier upstream of any ZTNP exchange. Where a deployment uses both — for example, a hardware vendor's RATS Endorsement plus an organizational Sponsor's identity vouching — the RATS Endorsement flows into the Issuer's evaluation pipeline (out of ZTNP scope) and the Sponsor's statement participates in ZTNP enrollment as described in this section.</t>

<t>For deployments that wish to publish Sponsor keys in a discoverable way, an <bcp14>OPTIONAL</bcp14> <strong>Sponsor Key Set (SKS)</strong> endpoint <bcp14>MAY</bcp14> be served at <spanx style="verb">/.well-known/ztnp-sponsor-keys</spanx> as a JWKS document <xref target="RFC7517"/> with <spanx style="verb">iss</spanx> matching the Sponsor identifier. The SKS has the same operational properties (cache TTL, rotation) as the IKS (Section 6). Deployments using direct PKI configuration, hardware-attested workload identity, or manually-installed keys need not implement the SKS endpoint.</t>

</section>
<section anchor="recommended-wire-mechanisms"><name>Recommended Wire Mechanisms</name>

<t>Implementers <bcp14>SHOULD</bcp14> adopt one of the following rather than invent a new enrollment flow:</t>

<t><list style="symbols">
  <t><strong>OAuth Dynamic Client Registration (<xref target="RFC7591"/>/<xref target="RFC7592"/>)</strong> — for deployments already running OAuth infrastructure. The Prover registers with the Issuer's registration endpoint and receives an Issuer-signed Posture Assertion alongside (or as) the registration response. ZTNP-specific fields (<spanx style="verb">enrollment_mode</spanx>, <spanx style="verb">subject_kind</spanx>, framework requests, sponsorship reference) are carried as extension members per <xref target="RFC7591"/> Section 2.4.</t>
  <t><strong>RATS attestation flow (<xref target="RFC9334"/>)</strong> — for deployments where attestation Evidence is generated at the Prover and submitted to a RATS Verifier (the Issuer). The resulting Attestation Result is the Posture Assertion. This is the natural pattern when Evidence is hardware-rooted (TPM, TEE) or platform-rooted (cgroup, sandbox).</t>
  <t><strong>Supply-chain transparency registry (e.g., SCITT <xref target="SCITT-ARCH"/>)</strong> — for deployments that want enrollment events recorded in a tamper-evident, queryable log. The Issuer registers the enrollment as a signed statement; the Posture Assertion carries a reference to the statement's registry entry for downstream audit.</t>
  <t><strong>Direct provisioning</strong> — for closed deployments (single operator, manually-managed agent fleet), the Issuer provisions Posture Assertions out-of-band. ZTNP imposes no wire-format requirements on this case beyond the Abstract Requirements above.</t>
</list></t>

</section>
<section anchor="self-enrollment-anti-abuse"><name>Self-Enrollment Anti-Abuse</name>

<t>When an Issuer offers Self-Enrollment, the registration endpoint becomes a target for Sybil attacks: an adversary that can self-enroll without limit can trivially create unbounded numbers of <spanx style="verb">tier &lt;= 1</spanx> identities. Deployments offering Self-Enrollment <bcp14>SHOULD</bcp14> apply rate limits at the registration endpoint (<bcp14>RECOMMENDED</bcp14> default: at most 10 successful registrations per minute per source identifier — IP address, OAuth client_id, or deployment-specific source). High-throughput deployments <bcp14>MAY</bcp14> relax these limits with documented compensating controls.</t>

</section>
<section anchor="revocation-linkage"><name>Revocation Linkage</name>

<t>A Posture Assertion's <spanx style="verb">sub</spanx> is the unique join key between the enrollment record and the assertions issued under it. Issuers <bcp14>MUST NOT</bcp14> reissue the same <spanx style="verb">sub</spanx> to a different enrolled subject after revocation; if the same logical entity re-enrolls, it <bcp14>MUST</bcp14> receive a fresh <spanx style="verb">sub</spanx>. Issuers operating a revocation endpoint <bcp14>SHOULD</bcp14> publish revocations immediately; Issuers without one <bcp14>MUST</bcp14> rely on the natural <spanx style="verb">exp</spanx> of in-flight assertions, which may leave an accepted-but-revoked window. High-stakes deployments <bcp14>SHOULD</bcp14> operate a revocation endpoint for this reason.</t>

</section>
</section>
<section anchor="proof-of-possession-optional"><name>Proof-of-Possession (Optional)</name>

<t>This section is <bcp14>OPTIONAL</bcp14>. Channel binding (Section 8.2, mandatory when TLS) addresses cross-connection-theft. PoP is a stricter defense for high-stakes operations: it binds the Permit to an ephemeral key the Prover proves possession of on every request. PoP follows the pattern of <xref target="RFC9449"/> (DPoP).</t>

<t>The Prover generates an ephemeral asymmetric key pair at session establishment, sends the public key thumbprint in PROOF metadata, and the Requester embeds key confirmation in the Permit:</t>

<figure><sourcecode type="json"><![CDATA[
{ "cnf": { "jkt": "<base64url(SHA-256(public_key_JWK_thumbprint))>" } }
]]></sourcecode></figure>

<t>For each request, the Prover includes a short-lived JWS containing <spanx style="verb">htm</spanx>, <spanx style="verb">htu</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">jti</spanx>, <spanx style="verb">permit_id</spanx>. The Requester verifies that <spanx style="verb">cnf.jkt</spanx> matches the signing key, <spanx style="verb">iat</spanx> is fresh, and <spanx style="verb">jti</spanx> has not been seen within the proof TTL.</t>

<t>PoP is <bcp14>RECOMMENDED</bcp14> for capabilities that touch <spanx style="verb">pii_access_allowed</spanx>, <spanx style="verb">secrets_access_allowed</spanx>, or <spanx style="verb">code_exec_allowed</spanx> flagged operations.</t>

</section>
<section anchor="profile-extension-mechanism"><name>Profile Extension Mechanism</name>

<t>Domain-specific semantics are defined in <strong>Profiles</strong> that extend ZTNP's base claim schema.</t>

<t>A Profile <bcp14>MAY</bcp14> define: additional structured claims under <spanx style="verb">claims.posture</spanx>; framework-specific tier semantics, registered with the IANA Framework Tier Semantics Registry (Section 15); standard policy packs; evidence-reference conventions; additional flags.</t>

<t>A Profile <bcp14>MUST NOT</bcp14>: alter the required claims in Section 5.1; redefine <spanx style="verb">bind</spanx>, <spanx style="verb">scope</spanx>, or signature requirements; introduce transport behaviors incompatible with Section 9.</t>

<t>Profile documents are published independently. Profiles that wish to be referenced by <spanx style="verb">framework_id</spanx> <bcp14>MUST</bcp14> register their framework in the IANA ZTNP Security Frameworks Registry (Section 15).</t>

</section>
<section anchor="relationship-to-existing-work"><name>Relationship to Existing Work</name>

<t>ZTNP composes with several existing specifications. This section is informative.</t>

<section anchor="ztnp-composes-with"><name>ZTNP Composes With</name>

<t><strong>RATS <xref target="RFC9334"/></strong> — RATS specifies an attestation architecture up to and including the Attestation Result. ZTNP composes with RATS as one possible upstream attestation pipeline (Section 1.5) but is <strong>not</strong> a RATS consumption profile and does not claim to operate within RATS' charter. RATS is hardware-attestation-centric; ZTNP's primary problem domain is software-layer security and governance posture, session negotiation, and channel-bound authorization issuance.</t>

<t><strong>SCITT <xref target="SCITT-ARCH"/></strong> — A Posture Assertion <bcp14>MAY</bcp14> be encoded as a SCITT-compatible COSE_Sign1 Signed Statement and registered with a Transparency Service.</t>

<t><strong>OAuth 2.0 <xref target="RFC6749"/> and GNAP <xref target="RFC9635"/></strong> — A ZTNP Permit is structurally a scoped grant. Deployments <bcp14>MAY</bcp14> emit Permits in a GNAP-compatible format.</t>

<t><strong>JOSE <xref target="RFC7515"/> / COSE <xref target="RFC9052"/></strong> — Signed-token formats for Posture Assertions and Permits.</t>

<t><strong>RFC 7591 / RFC 7592 <xref target="RFC7591"/><xref target="RFC7592"/></strong> — Section 10 defines a compatibility profile.</t>

<t><strong>DPoP <xref target="RFC9449"/></strong> — Section 12 follows the DPoP pattern.</t>

<t><strong>TLS Channel Bindings <xref target="RFC9266"/></strong> — Section 8 uses the TLS exporter mechanism.</t>

</section>
<section anchor="adjacent-layers-out-of-scope"><name>Adjacent Layers Out of Scope</name>

<t>ZTNP is intentionally narrow.</t>

<t><strong>A2A <xref target="A2A"/></strong> — runtime envelope for inter-agent communication. ZTNP layers a posture concern over A2A. ZTNP does not specify how agents address one another or exchange artifacts.</t>

<t><strong>MCP <xref target="MCP"/></strong> — tool-capability semantics. ZTNP gates whether and under what constraints an agent invokes a given tool. ZTNP does not specify tool semantics.</t>

<t><strong>SPIFFE / SPIRE <xref target="SPIFFE"/></strong> — cryptographic workload identity. ZTNP binds posture claims to a stable identifier that <bcp14>MAY</bcp14> itself be a SPIFFE ID.</t>

<t><strong>TLS / mTLS</strong> — transport security and identity. ZTNP runs over TLS and binds to it but does not replace it.</t>

<t><strong>Multi-agent delegation <xref target="I-D.miller-ztip"/></strong> — out of scope for ZTNP; covered by ZTIP.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This section is <bcp14>REQUIRED</bcp14> by <xref target="RFC3552"/>.</t>

<section anchor="assumptions"><name>Assumptions</name>

<texttable>
      <ttcol align='left'>#</ttcol>
      <ttcol align='left'>Assumption</ttcol>
      <c>A1</c>
      <c>Issuer signing keys are not known to any adversary.</c>
      <c>A2</c>
      <c>IKS endpoints are served over authenticated TLS.</c>
      <c>A3</c>
      <c>Implementations use a reliable time source (skew &lt; 5 minutes).</c>
      <c>A4</c>
      <c>Cryptographically secure random number generators.</c>
      <c>A5</c>
      <c>Transport provides confidentiality where Posture Assertions or Permits contain sensitive details.</c>
      <c>A6</c>
      <c>Requesters correctly implement policy evaluation.</c>
      <c>A7</c>
      <c>Sponsor keys (where Sponsors are used; Section 10.4) are managed in hardware or otherwise protected.</c>
</texttable>

</section>
<section anchor="adversaries"><name>Adversaries</name>

<t>ADV-NET (Network adversary), ADV-RESOURCE (Malicious resource), ADV-CALLER (Malicious agent), ADV-COLLUDING, ADV-ISSUER (Compromised Issuer), ADV-PARTIAL-ISSUER (Semi-trusted Issuer).</t>

</section>
<section anchor="attack-surface-and-mitigations"><name>Attack Surface and Mitigations</name>

<texttable>
      <ttcol align='left'>Attack</ttcol>
      <ttcol align='left'>Adversary</ttcol>
      <ttcol align='left'>Mitigation</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>PA forgery</c>
      <c>ADV-NET, ADV-RESOURCE, ADV-CALLER</c>
      <c>Signature verification against IKS</c>
      <c>Section 5, 6</c>
      <c>Replay of valid PA</c>
      <c>ADV-NET</c>
      <c>Challenge binding (<spanx style="verb">bind.nonce</spanx>)</c>
      <c>Section 5</c>
      <c>Substitution</c>
      <c>ADV-RESOURCE, ADV-CALLER</c>
      <c>Subject binding</c>
      <c>Section 5</c>
      <c>Stale PA</c>
      <c>ADV-RESOURCE</c>
      <c><spanx style="verb">exp</spanx> enforcement + freshness</c>
      <c>Section 5</c>
      <c>Cross-vendor tier confusion</c>
      <c>ADV-PARTIAL-ISSUER</c>
      <c>Framework anchoring</c>
      <c>Section 4, 5</c>
      <c>Algorithm downgrade</c>
      <c>ADV-NET, ADV-RESOURCE</c>
      <c>Allowed-algorithm list</c>
      <c>Section 5</c>
      <c>Issuer key compromise</c>
      <c>ADV-ISSUER</c>
      <c>Short PA lifetimes; revocation; key rotation</c>
      <c>Section 6</c>
      <c>Permit theft / cross-connection replay</c>
      <c>ADV-NET, ADV-CALLER</c>
      <c>Mandatory channel binding when TLS</c>
      <c>Section 8</c>
      <c>Permit replay outside session</c>
      <c>ADV-CALLER</c>
      <c>Optional PoP</c>
      <c>Section 12</c>
      <c>Sybil enrollment</c>
      <c>ADV-CALLER</c>
      <c>Tier-1 ceiling on Self-Enrollment</c>
      <c>Section 10</c>
      <c>Sponsorship forgery</c>
      <c>(Sponsor key compromise)</c>
      <c>HSM-protected Sponsor keys</c>
      <c>Section 10</c>
      <c>Clock manipulation</c>
      <c>ADV-NET</c>
      <c>Reliable time source</c>
      <c>Section 5</c>
      <c>IKS poisoning</c>
      <c>ADV-NET</c>
      <c>TLS on IKS; cache TTL</c>
      <c>Section 6</c>
</texttable>

<t>For multi-agent delegation threats (prompt injection, confused deputy, intent substitution), see ZTIP <xref target="I-D.miller-ztip"/>.</t>

</section>
<section anchor="out-of-scope"><name>Out of Scope</name>

<t>Runtime posture drift; identity establishment; evidence quality grading; side-channel attacks on signature verification; denial-of-service; supply chain compromise of an Issuer; key compromise on the Prover (subject_key from enrollment).</t>

</section>
<section anchor="channel-binding-practical-considerations"><name>Channel Binding Practical Considerations</name>

<t>Section 8.2 makes channel binding mandatory when the transport is TLS. Implementing it requires that the application have access to the TLS session's exporter material. This is straightforward in some environments and constrained in others; this section gives implementers the operational guidance they need.</t>

<section anchor="tls-library-availability"><name>TLS Library Availability</name>

<t>The TLS exporter mechanism is defined in <xref target="RFC9266"/> and built on <xref target="RFC8446"/> Section 7.5. As of this specification's publication, the API is available in:</t>

<t><list style="symbols">
  <t><strong>OpenSSL</strong> 1.1.1 and later: <spanx style="verb">SSL_export_keying_material()</spanx>.</t>
  <t><strong>BoringSSL</strong>: <spanx style="verb">SSL_export_keying_material()</spanx>.</t>
  <t><strong>rustls</strong> (Rust): <spanx style="verb">Connection::export_keying_material()</spanx>.</t>
  <t><strong>Go</strong>: <spanx style="verb">tls.ConnectionState.ExportKeyingMaterial()</spanx>.</t>
  <t><strong>Node.js</strong> (LTS): <spanx style="verb">tls.TLSSocket.exportKeyingMaterial()</spanx>.</t>
  <t><strong>Python</strong> 3.12 and later: <spanx style="verb">ssl.SSLObject.export_keying_material()</spanx>.</t>
  <t><strong>Java</strong> 13 and later (Conscrypt and recent JDK builds): exporter API exposed via <spanx style="verb">SSLEngine</spanx>.</t>
</list></t>

<t>Older runtimes or restricted embedded TLS stacks may not expose the exporter API. Implementations targeting such environments cannot implement channel binding directly and <bcp14>SHOULD</bcp14> either upgrade the TLS stack or delegate the channel-binding step to a frontend that does support it.</t>

</section>
<section anchor="termination-by-intermediaries"><name>Termination by Intermediaries</name>

<t>A common deployment pattern places a TLS-terminating reverse proxy (a CDN, an L7 load balancer, an API gateway) in front of the resource server. In this pattern the proxy has the exporter material; the origin does not. Two strategies:</t>

<t><list style="numbers" type="1">
  <t><strong>Channel binding at the proxy.</strong> The proxy performs ZTNP enforcement (verifies Posture Assertions, issues Permits, validates channel binding on each subsequent request) and forwards already-authorized requests to the origin. The origin sees no ZTNP machinery. This is the recommended pattern when the proxy is in the same trust domain as the origin.</t>
  <t><strong>Re-establish TLS to the origin.</strong> The proxy re-encrypts to the origin (mTLS or service-mesh sidecar TLS), and the origin performs ZTNP enforcement against the proxy-to-origin TLS session. The proxy must forward the Posture Assertion and the channel-binding values that match the proxy-to-origin session, not the client-to-proxy session. This requires the proxy to re-issue the Permit's <spanx style="verb">ch_binding</spanx> against the new exporter, which means the proxy is acting as a Requester even if the client thought it was negotiating with the origin.</t>
</list></t>

<t>Strategy (1) is operationally simpler and the recommended default. Strategy (2) is appropriate when the proxy is not trusted to make policy decisions on behalf of the origin.</t>

</section>
<section anchor="connection-migration-and-resumption"><name>Connection Migration and Resumption</name>

<t>Channel binding ties a Permit to a specific TLS session's exporter output. Connection migration (HTTP/3, QUIC) and TLS session resumption (Section 2.2 of <xref target="RFC8446"/>) introduce new keying material; the previously-issued Permit's <spanx style="verb">ch_binding</spanx> will no longer match. The Permit <bcp14>MUST</bcp14> be considered invalid in the new session, and a fresh ZTNP negotiation is <bcp14>REQUIRED</bcp14>.</t>

<t>This is a security feature, not a limitation: a session change is exactly when channel binding is supposed to invalidate a Permit.</t>

</section>
<section anchor="what-to-do-when-tls-is-not-available"><name>What to Do When TLS Is Not Available</name>

<t>Some transports do not provide TLS keying material:</t>

<t><list style="symbols">
  <t>MCP-over-stdio (in-process pipes, local IPC): no TLS. The MCP profile defines a transport-equivalent <strong>Process Binding</strong> mechanism using ephemeral-key exchange and per-call proof-of-possession.</t>
  <t>Service-mesh transports that explicitly opt out of mTLS in same-trust-domain communication.</t>
</list></t>

<t>For these transports, the Permit <bcp14>MAY</bcp14> either omit <spanx style="verb">ch_binding</spanx> (Section 8.2) — relying on the underlying transport's trust boundary — or include a profile-defined <spanx style="verb">ch_binding.method</spanx> value naming a transport-equivalent binding. <strong>Concrete transport-equivalent binding mechanisms are intentionally deferred to profile documents</strong> (Section 13) rather than being specified in this base specification. Each transport's natural binding substrate is sufficiently different (stdio's parent-process spawning, service-mesh sidecar identity, embedded environments) that a single ZTNP-level mechanism would be either too prescriptive for some or too permissive for others. The MCP profile (<spanx style="verb">draft-miller-ztnp-mcp-profile-00</spanx>) addresses the MCP-over-stdio case via Process Binding (<spanx style="verb">ch_binding.method = "mcp-process-ephemeral-key"</spanx>); future profiles for other non-TLS transports <bcp14>SHOULD</bcp14> define their binding mechanism similarly.</t>

</section>
<section anchor="reference-implementation-guidance"><name>Reference Implementation Guidance</name>

<t>Implementers <bcp14>SHOULD</bcp14> consult the reference TypeScript verifier at the project's repository for an example of how to wrap a TLS library's exporter API and bind the result to Permit issuance. The reference implementation includes channel-binding helpers for Node.js TLS sockets.</t>

</section>
</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>This section is informed by <xref target="RFC6973"/>. ZTNP carries data that can reveal organizational and operational details; deployments <bcp14>SHOULD</bcp14> apply data minimization.</t>

<t><strong>Posture data sensitivity.</strong> Posture Assertions describe vulnerabilities, incidents, and framework controls. Aggregated, this leaks security maturity and incident history. Issuers <bcp14>SHOULD NOT</bcp14> include claims more granular than necessary.</t>

<t><strong>Subject identifier privacy.</strong> The <spanx style="verb">sub</spanx> claim is stable and long-lived. Where Provers participate in many short interactions, a stable <spanx style="verb">sub</spanx> enables linkability. Issuers <bcp14>SHOULD</bcp14> support pseudonymous subject identifiers where deployment context permits.</t>

<t><strong>Subject key linkability.</strong> A Prover's <spanx style="verb">subject_key</spanx> (bound to its Posture Assertion at enrollment time, Section 11.1) is also stable and long-lived. The thumbprint of <spanx style="verb">subject_key</spanx> appears in <spanx style="verb">nonce_sig</spanx> bindings (Section 5.5) and in PoP <spanx style="verb">cnf.jkt</spanx> values (Section 12). An observer who can correlate signatures or PoP proofs across sessions can link sessions to the same subject even if the <spanx style="verb">sub</spanx> claim is rotated or pseudonymous. Provers concerned with cross-session unlinkability <bcp14>MAY</bcp14> use a per-session ephemeral key for PoP and rely on the stable <spanx style="verb">subject_key</spanx> only at enrollment and verification points where stability is required. Profile documents <bcp14>MAY</bcp14> specify rotation conventions for <spanx style="verb">subject_key</spanx> itself.</t>

<t><strong>Issuer linkability.</strong> A Requester learns which Issuer assessed a given Prover. Provers <bcp14>MAY</bcp14> hold Posture Assertions from multiple Issuers and select per-session.</t>

<t><strong>Evidence references.</strong> <spanx style="verb">evidence_refs</spanx> and <spanx style="verb">posture</spanx> claims <bcp14>SHOULD</bcp14> reference evidence by hash rather than embedding raw artifacts.</t>

<t><strong>Discovery leakage.</strong> Discovery responses advertise issuers and frameworks. Provers <bcp14>SHOULD</bcp14> limit Discovery to authenticated callers when posture details are sensitive.</t>

<t><strong>Logging.</strong> Logs containing Permit IDs and subject identifiers <bcp14>SHOULD</bcp14> be access-controlled and retention-bounded.</t>

<t><strong>Cross-session correlation.</strong> Channel-bound Permits cannot be linked across sessions by an external observer.</t>

<t><strong>Children and protected categories.</strong> Profiles operating in regulated environments (healthcare, education, financial services) <bcp14>MUST</bcp14> address regulatory privacy obligations.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests the following IANA actions.</t>

<section anchor="registry-strategy"><name>Registry Strategy</name>

<t>ZTNP defines several extension namespaces (flags, constraint types, assessment methods, reason codes, binding modes, adoption postures, channel binding methods, enrollment modes). Each is administered as a separate IANA registry rather than collapsed into a single "ZTNP parameters" registry, because the value spaces are semantically disjoint and a flat registry would invite name collisions across categories.</t>

<t><strong>All ZTNP registries created by this document use the Specification Required policy</strong> (<xref target="RFC8126"/> Section 4.6). This is a deliberate choice over the heavier alternatives:</t>

<t><list style="symbols">
  <t><em>Standards Action</em> (full IETF consensus per <xref target="RFC8126"/> Section 4.9) would require an RFC for every flag or constraint name, which is disproportionate to the typical extension — a single boolean flag, a single denial reason code — and would create a permanent backlog. Profile authors and deployment vendors would be unable to register their extensions in any reasonable timeframe.</t>
  <t><em>IETF Review</em> (Section 4.8) and <em>RFC Required</em> (Section 4.7) have the same problem at smaller scale.</t>
  <t><em>Expert Review</em> alone (Section 4.5) does not require a written specification, which would risk under-documented entries that future implementers cannot interpret.</t>
</list></t>

<t>Specification Required strikes the right balance: anyone with a publicly accessible written specification — an RFC, an industry-body publication, or an Internet-Draft with a stable baseline — can register an extension after Designated Expert sign-off. The administrative load on IANA is modest because the gating work happens at the DE rather than through full WG processing.</t>

</section>
<section anchor="designated-expert-guidance"><name>Designated Expert Guidance</name>

<t>Designated Experts (DEs) appointed for ZTNP registries <bcp14>SHOULD</bcp14> evaluate registration requests against the following criteria:</t>

<t><list style="symbols">
  <t><strong>Specification stability.</strong> A registration <bcp14>MUST</bcp14> cite a publicly accessible, version-stable specification (an RFC, an ISO/IEC or NIST publication, a formally published industry specification, an Internet-Draft with a stable baseline, or equivalent). Registrations that cite only blog posts, unversioned web pages, or specifications under active drafting without any published baseline <bcp14>SHOULD</bcp14> be rejected.</t>
  <t><strong>Identifiable change controller.</strong> Each registration <bcp14>MUST</bcp14> name a change controller capable of authorizing future updates to the entry.</t>
  <t><strong>Non-overlap with existing entries.</strong> Registrations whose semantics duplicate an existing entry under a different name <bcp14>SHOULD</bcp14> be rejected.</t>
  <t><strong>Interoperability impact.</strong> For registries that affect protocol behavior (Constraint Type, Binding Mode, Reason Code, Channel Binding Method), DEs <bcp14>SHOULD</bcp14> assess whether the new value can be interpreted unambiguously by an implementation that has not previously seen it.</t>
  <t><strong>Protocol scope.</strong> Registrations <bcp14>MUST NOT</bcp14> redefine ZTNP semantics; they extend them.</t>
</list></t>

<t>DEs <bcp14>SHOULD</bcp14> respond to registration requests within 30 days. Where a DE has a conflict of interest with a particular registration, the DE <bcp14>SHOULD</bcp14> recuse and request a substitute via IANA.</t>

</section>
<section anchor="well-known-uri-registrations"><name>Well-Known URI Registrations</name>

<t>Register the following entries in the "Well-Known URIs" registry <xref target="RFC8615"/>:</t>

<texttable>
      <ttcol align='left'>URI Suffix</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Status</ttcol>
      <c><spanx style="verb">ztnp</spanx></c>
      <c>IETF</c>
      <c>This document, Section 6</c>
      <c>permanent</c>
      <c><spanx style="verb">ztnp-sponsor-keys</spanx></c>
      <c>IETF</c>
      <c>This document, Section 10.4</c>
      <c>permanent</c>
</texttable>

</section>
<section anchor="media-type-registrations"><name>Media Type Registrations</name>

<t>Register the following media types in the "Media Types" registry per <xref target="RFC6838"/>:</t>

<texttable>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">application/posture-assertion+jwt</spanx></c>
      <c>A Posture Assertion serialized as a JWS Compact Serialization <xref target="RFC7515"/></c>
      <c>This document, Section 5</c>
      <c><spanx style="verb">application/posture-assertion+cwt</spanx></c>
      <c>A Posture Assertion serialized as a COSE_Sign1 <xref target="RFC9052"/> CWT</c>
      <c>This document, Section 5</c>
      <c><spanx style="verb">application/ztnp-permit+jwt</spanx></c>
      <c>A ZTNP Permit serialized as a JWS Compact Serialization</c>
      <c>This document, Section 8</c>
      <c><spanx style="verb">application/ztnp-permit+cwt</spanx></c>
      <c>A ZTNP Permit serialized as a COSE_Sign1</c>
      <c>This document, Section 8</c>
</texttable>

<t>Each media type's registration template follows <xref target="RFC6838"/>; security considerations for each are those of this document (Section 15).</t>

</section>
<section anchor="note-on-framework-identifiers"><name>Note on Framework Identifiers</name>

<t>ZTNP does not request an IANA registry of security frameworks. Framework identifiers (<spanx style="verb">framework_id</spanx> claim, Section 5.2) are URIs published by the framework's authoring organization (NIST, ISO/IEC, OWASP, AICPA, the European Commission, vendor-publishers, or enterprises operating internal frameworks). Section 4.4 motivates this design choice; the informative table of well-known canonical URIs in Section 4.4 is non-normative guidance.</t>

<t>This explicit non-registration is itself an IANA action: this document requests that future ZTNP-related allocations avoid creating a centralized framework directory in IANA's namespace, leaving framework identification to the publishers of those frameworks.</t>

</section>
<section anchor="ztnp-posture-assertion-flag-names-registry"><name>ZTNP Posture Assertion Flag Names Registry</name>

<t>This document requests creation of a registry titled "ZTNP Posture Assertion Flag Names". It administers names usable in the <spanx style="verb">claims.posture.flags</spanx> field of Posture Assertions (Section 5).</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Name</strong>: identifier matching <spanx style="verb">[a-z][a-z0-9_]*</spanx></t>
  <t><strong>Description</strong>: prose definition of the operational state the flag asserts</t>
  <t><strong>Reference</strong>: specification defining the flag</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">critical_open</spanx></c>
      <c>At least one open issue at "critical" severity per the Issuer's severity scale</c>
      <c>This document</c>
      <c><spanx style="verb">incident_open</spanx></c>
      <c>At least one ongoing security incident affects the subject</c>
      <c>This document</c>
      <c><spanx style="verb">pii_access_allowed</spanx></c>
      <c>Subject is authorized to access personally identifiable information</c>
      <c>This document</c>
      <c><spanx style="verb">secrets_access_allowed</spanx></c>
      <c>Subject is authorized to access cryptographic secrets</c>
      <c>This document</c>
      <c><spanx style="verb">code_exec_allowed</spanx></c>
      <c>Subject is authorized to execute arbitrary code</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="ztnp-constraint-type-registry"><name>ZTNP Constraint Type Registry</name>

<t>This document requests creation of a registry titled "ZTNP Constraint Types". It administers types usable as keys within Permit <spanx style="verb">constraints</spanx> objects (Section 8).</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Type</strong>: identifier matching <spanx style="verb">[a-z][a-z0-9_]*</spanx></t>
  <t><strong>Description</strong>: prose semantics</t>
  <t><strong>Value Schema</strong>: JSON-Schema fragment or prose schema for the constraint's value</t>
  <t><strong>Reference</strong>: specification</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">data</spanx></c>
      <c>Restricts the data classes the Permit covers</c>
      <c>This document</c>
      <c><spanx style="verb">actions</spanx></c>
      <c>Restricts the action verbs the Permit covers</c>
      <c>This document</c>
      <c><spanx style="verb">rate_limit</spanx></c>
      <c>Imposes a request-rate cap</c>
      <c>This document</c>
      <c><spanx style="verb">ttl</spanx></c>
      <c>Bounds session duration beyond <spanx style="verb">exp</spanx></c>
      <c>This document</c>
      <c><spanx style="verb">redaction</spanx></c>
      <c>Specifies output redaction requirements</c>
      <c>This document</c>
      <c><spanx style="verb">tools</spanx></c>
      <c>Restricts the tool identifiers the Permit covers</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="ztnp-assessment-method-names-registry"><name>ZTNP Assessment Method Names Registry</name>

<t>This document requests creation of a registry titled "ZTNP Assessment Method Names". It administers values usable in the <spanx style="verb">claims.assessment_method</spanx> field of Posture Assertions (Section 5.4).</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Name</strong>: identifier matching <spanx style="verb">[a-z][a-z0-9_]*</spanx></t>
  <t><strong>Description</strong>: prose description of the methodology</t>
  <t><strong>Determinism</strong>: whether two assessments of the same Prover are expected to produce the same outcome (deterministic / non-deterministic / mixed)</t>
  <t><strong>Reference</strong>: specification</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Determinism</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">deterministic_checklist</spanx></c>
      <c>Evidence checked against a fixed rule set with deterministic pass/fail</c>
      <c>deterministic</c>
      <c>This document</c>
      <c><spanx style="verb">automated_scan</spanx></c>
      <c>Programmatic scanning (vulnerability scanners, static analyzers, configuration auditors)</c>
      <c>deterministic</c>
      <c>This document</c>
      <c><spanx style="verb">human_review</spanx></c>
      <c>Human-led assessment by qualified reviewers</c>
      <c>non-deterministic</c>
      <c>This document</c>
      <c><spanx style="verb">llm_evaluator</spanx></c>
      <c>Evaluation conducted by a language model interpreting evidence</c>
      <c>non-deterministic</c>
      <c>This document</c>
      <c><spanx style="verb">hybrid</spanx></c>
      <c>Combination of two or more of the above</c>
      <c>mixed</c>
      <c>This document</c>
      <c><spanx style="verb">unspecified</spanx></c>
      <c>Methodology not disclosed</c>
      <c>mixed</c>
      <c>This document</c>
</texttable>

<t>Profile-defined values that are not generally reusable across profiles <bcp14>SHOULD</bcp14> use a profile-prefixed name (e.g., <spanx style="verb">acme_internal_v1</spanx>) to avoid collisions.</t>

</section>
<section anchor="ztnp-denial-reason-code-registry"><name>ZTNP Denial Reason Code Registry</name>

<t>This document requests creation of a registry titled "ZTNP Denial Reason Codes". It administers reason-code strings returned by Requesters when a negotiation, validation, or enrollment step fails.</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Code</strong>: identifier matching <spanx style="verb">[A-Z][A-Z0-9_]*</spanx></t>
  <t><strong>Description</strong>: prose definition of the failure condition</t>
  <t><strong>Reference</strong>: specification</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations (all reference this document):</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">PA_MISSING</spanx></c>
      <c>Required Posture Assertion was not presented</c>
      <c><spanx style="verb">PA_EXPIRED</spanx></c>
      <c>Posture Assertion is past its <spanx style="verb">exp</spanx></c>
      <c><spanx style="verb">PA_INVALID_SIG</spanx></c>
      <c>Posture Assertion signature did not verify</c>
      <c><spanx style="verb">PA_BINDING_FAILED</spanx></c>
      <c>Posture Assertion binding (nonce, channel, or subject) did not match</c>
      <c><spanx style="verb">PA_ISSUER_UNKNOWN</spanx></c>
      <c>Issuer is not in the Requester's trusted-issuer set</c>
      <c><spanx style="verb">PA_FRAMEWORK_UNKNOWN</spanx></c>
      <c>The Posture Assertion's <spanx style="verb">framework_id</spanx> URI is not in the Requester's allowed-frameworks list.</c>
      <c><spanx style="verb">POLICY_TIER_LOW</spanx></c>
      <c>Posture tier is below the policy minimum</c>
      <c><spanx style="verb">POLICY_FLAG_BLOCKED</spanx></c>
      <c>A blocking flag is asserted on the Posture Assertion</c>
      <c><spanx style="verb">POLICY_FRESHNESS</spanx></c>
      <c>Posture Assertion is older than the policy freshness window</c>
      <c><spanx style="verb">POLICY_FRAMEWORK_MISMATCH</spanx></c>
      <c>The Posture Assertion's <spanx style="verb">framework_id</spanx> is well-formed but is not in the (otherwise valid) policy's allowed-frameworks list. Distinct from <spanx style="verb">POLICY_INCOMPLETE</spanx> — the policy is fine; the assertion's framework is the problem.</c>
      <c><spanx style="verb">POLICY_INCOMPLETE</spanx></c>
      <c>The Requester's policy is malformed (e.g., specifies <spanx style="verb">tier_min</spanx> without either <spanx style="verb">framework_id</spanx> or <spanx style="verb">issuers_allowed</spanx>). A conforming policy engine <bcp14>SHOULD</bcp14> refuse to evaluate such a policy. Distinct from <spanx style="verb">POLICY_FRAMEWORK_MISMATCH</spanx> — the assertion is not the problem; the policy is.</c>
      <c><spanx style="verb">POLICY_METHOD_MISMATCH</spanx></c>
      <c>Posture Assertion's <spanx style="verb">assessment_method</spanx> is outside the policy's <spanx style="verb">assessment_method_allowed</spanx> list</c>
      <c><spanx style="verb">SUBJECT_MISMATCH</spanx></c>
      <c>Subject identifier does not match expectations</c>
      <c><spanx style="verb">PERMIT_EXPIRED</spanx></c>
      <c>Permit is past its <spanx style="verb">exp</spanx></c>
      <c><spanx style="verb">PERMIT_CHANNEL_MISMATCH</spanx></c>
      <c>Permit channel binding did not match</c>
      <c><spanx style="verb">PERMIT_SCOPE_VIOLATION</spanx></c>
      <c>Operation is outside Permit scope</c>
      <c><spanx style="verb">POP_PROOF_INVALID</spanx></c>
      <c>Proof-of-possession proof did not verify</c>
      <c><spanx style="verb">ENROLL_TIER_EXCEEDED</spanx></c>
      <c>Posture Assertion's <spanx style="verb">enrollment_mode</spanx> is <spanx style="verb">self</spanx> but its <spanx style="verb">tier</spanx> exceeds the Self-Enrollment ceiling (Section 11.2). Returned by a Requester verifying the assertion, not by an enrollment server.</c>
</texttable>

<t>ZTIP <xref target="I-D.miller-ztip"/> registers additional codes in this registry.</t>

</section>
<section anchor="ztnp-binding-mode-registry"><name>ZTNP Binding Mode Registry</name>

<t>This document requests creation of a registry titled "ZTNP Binding Modes". It administers identifiers describing how Posture Assertions and Permits are bound to a session (Section 8).</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Mode</strong>: identifier matching <spanx style="verb">[A-Za-z][A-Za-z0-9-]*</spanx></t>
  <t><strong>Description</strong>: prose semantics — what is bound and how</t>
  <t><strong>Applicability</strong>: which transports or contexts the mode applies to</t>
  <t><strong>Reference</strong>: specification</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Mode</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Applicability</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">PA-R</spanx></c>
      <c>Resource-Presents: Prover presents Posture Assertion to Requester</c>
      <c>Any transport</c>
      <c>This document</c>
      <c><spanx style="verb">PA-C</spanx></c>
      <c>Caller-Presents: Requester presents Posture Assertion to Prover</c>
      <c>Any transport</c>
      <c>This document</c>
      <c><spanx style="verb">Mutual</spanx></c>
      <c>Both parties exchange and verify Posture Assertions</c>
      <c>Any transport</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="ztnp-adoption-posture-registry"><name>ZTNP Adoption Posture Registry</name>

<t>This document requests creation of a registry titled "ZTNP Adoption Postures". It administers identifiers describing the Requester's behavior when an expected Posture Assertion is missing or fails policy (Section 7.6).</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Posture</strong>: identifier matching <spanx style="verb">[a-z][a-z0-9_-]*</spanx></t>
  <t><strong>Description</strong>: prose definition of behavior when a PA is missing or fails</t>
  <t><strong>Issues Permit on failure?</strong>: yes / no</t>
  <t><strong>Reference</strong>: specification</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Posture</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Issues Permit on failure?</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">required</spanx></c>
      <c>Deny on missing or failing PA</c>
      <c>no</c>
      <c>This document</c>
      <c><spanx style="verb">monitor-only</spanx></c>
      <c>Proceed with session, log failure, do not issue Permit</c>
      <c>no</c>
      <c>This document</c>
      <c><spanx style="verb">opportunistic</spanx></c>
      <c>Proceed and issue Permit even without a PA; record posture in Permit</c>
      <c>yes</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="ztnp-channel-binding-method-registry"><name>ZTNP Channel Binding Method Registry</name>

<t>This document requests creation of a registry titled "ZTNP Channel Binding Methods". It administers identifiers usable in <spanx style="verb">ch_binding.method</spanx> of Permits (Section 8.2).</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Method</strong>: identifier matching <spanx style="verb">[a-z][a-z0-9_-]*</spanx></t>
  <t><strong>Description</strong>: how the binding is computed and verified</t>
  <t><strong>Transport</strong>: which transport(s) the method applies to</t>
  <t><strong>Unforgeability rationale</strong>: brief explanation of why a party outside the transport's natural trust boundary cannot forge the binding</t>
  <t><strong>Reference</strong>: specification</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Method</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Transport</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">tls-exporter</spanx></c>
      <c>TLS exporter material per <xref target="RFC9266"/> (Section 8.2)</c>
      <c>TLS</c>
      <c>This document</c>
      <c><spanx style="verb">none</spanx></c>
      <c>No channel binding; REQUIRES <spanx style="verb">rationale</spanx> field</c>
      <c>Any</c>
      <c>This document</c>
</texttable>

<t>Profile documents that define transport-equivalent bindings (e.g., the MCP profile's <spanx style="verb">mcp-process-ephemeral-key</spanx>) <bcp14>MUST</bcp14> register their method in this registry before deployment in cross-organization use.</t>

</section>
<section anchor="ztnp-enrollment-mode-registry"><name>ZTNP Enrollment Mode Registry</name>

<t>This document requests creation of a registry titled "ZTNP Enrollment Modes". It administers identifiers describing how Issuers issue Posture Assertions to subjects (Section 10).</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Registration Template:</t>

<t><list style="symbols">
  <t><strong>Mode</strong>: identifier matching <spanx style="verb">[a-z][a-z0-9_]*</spanx></t>
  <t><strong>Description</strong>: prose definition of the enrollment process</t>
  <t><strong>Tier ceiling</strong>: maximum tier issuable under this mode</t>
  <t><strong>Reference</strong>: specification</t>
  <t><strong>Change Controller</strong></t>
</list></t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Mode</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Tier ceiling</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">self</spanx></c>
      <c>Self-Enrollment: Issuer performs proof-of-possession only; no Sponsor</c>
      <c>1</c>
      <c>This document, Section 10</c>
      <c><spanx style="verb">assessed</spanx></c>
      <c>Assessed Enrollment: Issuer performs posture assessment; <bcp14>OPTIONAL</bcp14> Sponsor vouching</c>
      <c>unbounded</c>
      <c>This document, Section 10</c>
</texttable>

</section>
</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<t>This section records known implementations per <xref target="RFC7942"/>. Per RFC 7942 guidance, this section is to be removed before publication as an RFC.</t>

<t>A reference TypeScript verifier covering the mandatory verification path is published at:</t>

<figure><artwork><![CDATA[
https://github.com/agent-trust-protocols/agent-trust-protocols/tree/main/reference/typescript/ztnp
]]></artwork></figure>

<t>A set of test vectors covering valid Posture Assertions, expired marks, signature failures, binding failures, channel-binding failures, subject mismatches, and unknown key identifiers is published at:</t>

<figure><artwork><![CDATA[
https://github.com/agent-trust-protocols/agent-trust-protocols/tree/main/test-vectors/ztnp
]]></artwork></figure>

<t>A Python reference implementation is in progress.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="RFC7517">
  <front>
    <title>JSON Web Key (JWK)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7517"/>
  <seriesInfo name="DOI" value="10.17487/RFC7517"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>
<reference anchor="RFC9110">
  <front>
    <title>HTTP Semantics</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
      <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="97"/>
  <seriesInfo name="RFC" value="9110"/>
  <seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>
<reference anchor="RFC6838">
  <front>
    <title>Media Type Specifications and Registration Procedures</title>
    <author fullname="N. Freed" initials="N." surname="Freed"/>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="January" year="2013"/>
    <abstract>
      <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="13"/>
  <seriesInfo name="RFC" value="6838"/>
  <seriesInfo name="DOI" value="10.17487/RFC6838"/>
</reference>
<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</reference>
<reference anchor="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>
<reference anchor="RFC9266">
  <front>
    <title>Channel Bindings for TLS 1.3</title>
    <author fullname="S. Whited" initials="S." surname="Whited"/>
    <date month="July" year="2022"/>
    <abstract>
      <t>This document defines a channel binding type, tls-exporter, that is compatible with TLS 1.3 in accordance with RFC 5056, "On the Use of Channel Bindings to Secure Channels". Furthermore, it updates the default channel binding to the new binding for versions of TLS greater than 1.2. This document updates RFCs 5801, 5802, 5929, and 7677.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9266"/>
  <seriesInfo name="DOI" value="10.17487/RFC9266"/>
</reference>
<reference anchor="RFC9334">
  <front>
    <title>Remote ATtestation procedureS (RATS) Architecture</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="D. Thaler" initials="D." surname="Thaler"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="N. Smith" initials="N." surname="Smith"/>
    <author fullname="W. Pan" initials="W." surname="Pan"/>
    <date month="January" year="2023"/>
    <abstract>
      <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9334"/>
  <seriesInfo name="DOI" value="10.17487/RFC9334"/>
</reference>
<reference anchor="RFC9449">
  <front>
    <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Waite" initials="D." surname="Waite"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9449"/>
  <seriesInfo name="DOI" value="10.17487/RFC9449"/>
</reference>
<reference anchor="RFC8446">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="August" year="2018"/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8446"/>
  <seriesInfo name="DOI" value="10.17487/RFC8446"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC6749">
  <front>
    <title>The OAuth 2.0 Authorization Framework</title>
    <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6749"/>
  <seriesInfo name="DOI" value="10.17487/RFC6749"/>
</reference>
<reference anchor="RFC7591">
  <front>
    <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="M. Machulak" initials="M." surname="Machulak"/>
    <author fullname="P. Hunt" initials="P." surname="Hunt"/>
    <date month="July" year="2015"/>
    <abstract>
      <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7591"/>
  <seriesInfo name="DOI" value="10.17487/RFC7591"/>
</reference>
<reference anchor="RFC7592">
  <front>
    <title>OAuth 2.0 Dynamic Client Registration Management Protocol</title>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="M. Machulak" initials="M." surname="Machulak"/>
    <date month="July" year="2015"/>
    <abstract>
      <t>This specification defines methods for management of OAuth 2.0 dynamic client registrations for use cases in which the properties of a registered client may need to be changed during the lifetime of the client. Not all authorization servers supporting dynamic client registration will support these management methods.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7592"/>
  <seriesInfo name="DOI" value="10.17487/RFC7592"/>
</reference>
<reference anchor="RFC9635">
  <front>
    <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="F. Imbault" initials="F." surname="Imbault"/>
    <date month="October" year="2024"/>
    <abstract>
      <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9635"/>
  <seriesInfo name="DOI" value="10.17487/RFC9635"/>
</reference>
<reference anchor="RFC3552">
  <front>
    <title>Guidelines for Writing RFC Text on Security Considerations</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="B. Korver" initials="B." surname="Korver"/>
    <date month="July" year="2003"/>
    <abstract>
      <t>All RFCs are required to have a Security Considerations section. Historically, such sections have been relatively weak. This document provides guidelines to RFC authors on how to write a good Security Considerations section. 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="72"/>
  <seriesInfo name="RFC" value="3552"/>
  <seriesInfo name="DOI" value="10.17487/RFC3552"/>
</reference>
<reference anchor="RFC6973">
  <front>
    <title>Privacy Considerations for Internet Protocols</title>
    <author fullname="A. Cooper" initials="A." surname="Cooper"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="J. Morris" initials="J." surname="Morris"/>
    <author fullname="M. Hansen" initials="M." surname="Hansen"/>
    <author fullname="R. Smith" initials="R." surname="Smith"/>
    <date month="July" year="2013"/>
    <abstract>
      <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6973"/>
  <seriesInfo name="DOI" value="10.17487/RFC6973"/>
</reference>
<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>

<reference anchor="I-D.miller-ztip" >
  <front>
    <title>Zero-Trust Intent Protocol (ZTIP)</title>
    <author initials="J." surname="Miller">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-miller-ztip-00"/>
</reference>
<reference anchor="SCITT-ARCH" >
  <front>
    <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
    <author initials="H." surname="Birkholz">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture"/>
</reference>
<reference anchor="SPIFFE" target="https://spiffe.io">
  <front>
    <title>Secure Production Identity Framework For Everyone</title>
    <author >
      <organization>SPIFFE Project</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="MCP" target="https://modelcontextprotocol.io">
  <front>
    <title>Model Context Protocol Specification</title>
    <author >
      <organization>Anthropic</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="A2A" >
  <front>
    <title>Agent-to-Agent Protocol</title>
    <author >
      <organization>Google et al.</organization>
    </author>
    <date year="2025"/>
  </front>
</reference>
<reference anchor="FIPS204" target="https://csrc.nist.gov/pubs/fips/204/final">
  <front>
    <title>Module-Lattice-Based Digital Signature Standard (ML-DSA)</title>
    <author >
      <organization>NIST</organization>
    </author>
    <date year="2024" month="August"/>
  </front>
  <seriesInfo name="FIPS" value="204"/>
</reference>


    </references>

</references>


<?line 1293?>

<section anchor="conformance-profiles"><name>Conformance Profiles</name>

<t>An implementation <bcp14>MAY</bcp14> claim conformance to one or more of the following profiles.</t>

<section anchor="ztnp"><name>ZTNP</name>

<t><bcp14>REQUIRED</bcp14> for any conformance claim. Sections 5 through 10, plus channel binding (Section 8.2) when transport is TLS.</t>

</section>
<section anchor="ztnp-hardened"><name>ZTNP Hardened</name>

<t>ZTNP PLUS Proof-of-Possession (Section 12). <bcp14>RECOMMENDED</bcp14> for sensitive-capability deployments.</t>

<t>ZTNP Federated and ZTNP Agentic profiles are defined in companion documents (the latter requiring ZTIP <xref target="I-D.miller-ztip"/>).</t>

</section>
</section>
<section anchor="open-questions-and-wg-venue"><name>Open Questions and WG Venue</name>

<t><strong>WG venue.</strong> ZTNP's primary problem domain is attestation-gated session authorization at the software layer: a Relying Party challenges a counterparty for a signed posture credential, applies local policy, and issues a session-scoped, channel-bound Permit. The author's preferred venues, in order: a SAAG-routed BoF or new WG scoped to attestation-gated session authorization; OAuth (for the Permit-issuance and token-extension portions); WIMSE (for the enrollment-requirements portion as a workload-identity concern); the Independent Submission stream as a fallback. ZTNP is <strong>not</strong> a RATS work item: while RATS is one possible upstream attestation pipeline (Section 1.5), ZTNP's center of gravity — framework-anchored portability, session negotiation, channel-bound Permits — sits outside the RATS architecture. RATS reviewers and contributors are welcomed in any chosen venue.</t>

<t><strong>Profile registration logistics.</strong> Relationship between profile authors and framework authors.</t>

<t><strong>Channel binding for non-TLS transports.</strong> Future revision <bcp14>SHOULD</bcp14> specify a binding for at least MCP-over-stdio.</t>

<t><strong>MAJOR vs MINOR version criteria.</strong> Future revision will provide concrete rules.</t>

</section>
<section anchor="example-policies-and-payloads"><name>Example Policies and Payloads</name>

<section anchor="example-policy-framework-anchored"><name>Example Policy (Framework-Anchored)</name>

<figure><sourcecode type="json"><![CDATA[
{
  "require": {
    "framework_id": "https://doi.org/10.6028/NIST.AI.100-1",
    "tier_min": 3,
    "issuers_allowed": ["https://issuer-x.example", "https://issuer-y.example"],
    "freshness_seconds": 86400,
    "flags": {
      "critical_open": false,
      "incident_open": false
    }
  }
}
]]></sourcecode></figure>

</section>
<section anchor="example-posture-assertion-payload"><name>Example Posture Assertion Payload</name>

<figure><sourcecode type="json"><![CDATA[
{
  "ver": "0.2",
  "iss": "https://issuer.example",
  "sub": "agent:acme-corp/data-processor",
  "iat": 1745500800,
  "exp": 1745587200,
  "jti": "pa_01HVXYZ123ABC456DEF",
  "framework_id": "https://doi.org/10.6028/NIST.AI.100-1",
  "tier": 3,
  "scope": {
    "kind": "agent",
    "target": "https://api.acme.com/agents/data-processor",
    "env": "prod"
  },
  "claims": {
    "flags": {
      "critical_open": false,
      "incident_open": false,
      "pii_access_allowed": true
    }
  },
  "bind": {
    "method": "nonce_hash",
    "nonce": "dGhpcyBpcyBhIGhhc2hlZCBub25jZQ==",
    "ctx": "mcp",
    "aud": "agent:requester-corp/orchestrator"
  }
}
]]></sourcecode></figure>

</section>
</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The author thanks the early reviewers for feedback during the draft cycle and welcomes broader community input as the work progresses toward IETF submission.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA9S923YjV5Yt9s6vCFMPAlgAMpk3pciubkMkU0kpk+QhKGVV
96hBBoEgGUoAAUcEyGRVqsc558Fj+NXDH+AX/4g/pb/Ea67LvgQCTKqP5GG3
fUpMMmLHvq69LnPN1e/3N+q8nmY7yea/ZmXRPyuXVZ0cZddFnad1XsyTk7Ko
i3ExTTr/enZ00t3cSC8vy+wWL9C/NzcmxXiezqiBSZle1f1ZPp1mZf/v9XzR
f/p0Y5zW1FZ5v5NU9WQjX5Q7SY1PPHv69NunzzbSMkt3klE2XpZ5fb9xV5Qf
r8tiuaDWNzeq5eUsryrqRH2/oA8cHpy92fiY3dNTk52NJOkni6Kql2XGP6d1
nVU191n+vaxvijL/u/9NlXFjyWU+n+Tza/7d32nQ0iP+59wPfIMam0/O02kx
p2/fZ9XGIt9J/o3mopdURVmX2VVFP93P5IdxMZtl87r628aEhryTPHv67FX/
6Yv+s282NqQr3GX6f0mSz6ud5IdB8p7nin8lU/hD+jELf5vN0ny6k/xCv/6f
/57f5tUgzTc25kU5oy7eZmjx9M3e829fv9Ifv3m5/dL/+I3/8Vv98dunL5/Z
j9vbT/XHV6+fv9YfX79yLbzefmbtfvvslfvx+fMX9uOLF9bu6xcv6IGNfH7V
6Nyrb9wz37z8dtv/6Lrx6rl98PlL17lX337z3J799gX/9rC/P3C7K1/s8Ay1
bN7DeU0LEe3bQ+xbPF5lZZ5V6KW8nvDT5Tyr+/vYviu7OOddjAf9IuL/+quL
ONo7PDvrD0/33sZdG86TYTm+yetsjM2a0Awl3FPax/XNfUK7jP6dzqsFnQbq
+H5+ndfpNBktF4vpfbJ3k9Knflv386y+6lfjvK77afDp9eN4O0i+y8uPN8X0
7xjJyeGbNwfxKPiMZpjVyXLMguFwQr2lU5u8KWnz4ugmb2hoB7dZeU9nRnpc
p+V1Rv26qetFtfPkSbXIr66yQV609qUor3f06/jSL9Rt+tv7vZO4L++LSTZN
9kguZJ+ChR4tsnF+lY/5+LZ/foY3x/LiQt97sDPDeX1TFot8TL8ePhs2Vvaa
ZqBfF33+wXVkc31z3xfF9TRLsjpJpwP+k5MWL+mfbw5PRs+evlgZ7XKa9d+R
gMvHWf+7tMomfpPk1/OUt9UI4iotJ0nn/bv+/mjYbZ+BcVWOB/O8qgfXxe2T
xfKyenKVL6on9Fn6YZ5O12w0dI06Q489MLyjw9FZPKoX/aevN/p0y+B/kvSy
qsuUFnXj7CZLHnfhJJUsa1YlqYlw2tvFgmaBBXcotBNbVD5lVXFV39Gh6k/T
+4z+qdcMnzgaPR2cdD7O7BYZJPheMsloGuhjN8UdffA0m97TXZGcpCW9OL5J
6bDPr7kv42KJw7fgv+Bz1D1aDeqWNpiMy4zPSDrtJdltOl3SrFTJtBjTwi2K
aT6mrlzjdNdJXve4W3TfLWWkNLt1f0qCdNLDd+fzbNq/pE/SP3X00Q2XUDfy
K5rbpJMmJ1k5y+tuck1/os7TRVpl/8sSe5ReLPn5KrnL65t8ntS0Ejqtg40N
noIx5qaiv5QZzc4NbbiKZHs/2do6mJfFdIqLbmurR6IjubvJxzfUXVo0eicp
LmuMx0/FiU7FsKItxf28KosZDTU5xEhL+khaJ/SJJK3QC3olr92spAltUJqn
6X0/55mkbTDx63hlgmfAnQs2UdQ7jPAU469ouYIZVnXALWovKbNxRjNe8Ssy
pK+rljHwOiR1Ib0PGnjkKmc09WFXZL3oDFEP6FMygbS5WWpPaEvOc8gLDPLn
dJpPVsf42CWmbZJhW2D7aKd4rNyBHr+QzCBIalLabN+ZxkTfyqS1mu8r2qE0
huTs3WggJ9pOH03amLpS0gxMMuwEaqkg4YWnadbo1NHG5YZmWTpHy8WVHubx
NM1n8tQjFz/pZIPrQY+FTzI8TE7fv0m2B097yeHo+MnhwV7ygpTN7W5Ck3Ij
G24uzatgGetWHCRDW6/s06LEfFHHNkua1pwmrc7p5edu1vzn/7KJYWEy0kuS
7em4LCpawPl9tMVFPa3a3rdjR63QPGeLbD7hdbziRiBf8vFympahipss8kU2
JUE1WN2eVfJ++NfkMqO5LyE/5MidDs9GyTBo4TSrllPq0T/+oVrdr7/25FHS
ZRfTnGVjupzQxqR1vab+Vvp3EjzFjPdQIEWrMfZKSc/Q0uohv08KnnOdCD0d
+PgsI9k1KabF9b3MzyzLajl3okEmOu+sVGMuSAHhN1+qnKbZ2tqaFySIIKYx
OLrXq+VsYffAVT7Ndt1r24OX2IvjMr9U4a6ibkbSOpOjws30bWYnfFTndNs0
fk1LNC3upWN0Gj9mtIDvaSrz/qLM5+N8wdt+ml3zUHvoC/Wqn89/kb70aW/l
sC7o9IiuqudLhMNldpPe5gUdnj4fBtqN9FDFC4vTa/fhBKc/5RHQGaIhkiW2
RK96PI1f1Ihp4Rsq9a+/8jmmmWU1ElNMZwV9u80nSxqVt8gGCc673EAyigkf
Wt4pdHSoC/Q272/u5W02X2Z2ceH0+Y3YF3HkBFR4q+3iLq3yy3ya19AAaHqn
y0mWHA/pqV7y4fD96KCXjIbD7/tkNqKZeXbHn+VtiGsmOFGjoPt7ZK8t5xAk
10sSqNjB9HHpJnoONXGGlYXeMssnk2m2sfEVptJpwBsbB59oHSElctOFsYDp
eIwZIDGaXvP+dXKxSjBoEmrVTbJ1d1Ng64r+QJ/sWCPd5HJZ02rS3pOtwetZ
8nHFx+J7324hbocELx3IhqRUdaQnj4bC2+Q7fhtqUcWYXsXNg+PNM6mvOpEp
tzUPjr/+C+0z3ZR01jGdEKckkG4h9mcp9YIGgMdpL+AKw61BlwSUFmjsGe4x
kp7Y+jTE5XyR1uMbao4OLIk/2nu3yymJl9S2Ap2VMcxMP0wcPcygSKB54f9C
/wwEFdT/EmtBQqWkY3rLv9UB0pem6IDNplwIGEtdfMzm/cuMjmDJA6KuZnRY
M79lITJoPvJZlpz9x3//r9hQaPMypePO4jyQvtktOosPy9oWyxJClCaMmoc+
RAO4o69Qv3hF78Om/5tdGaaspl7xvbw3teeukMuD/v4f//X/sMXAzF27afIy
2suucbrgm4x6TAYhX/xOn/MqLbdJMt9tnExvcOqnnWW322WjoPeXbL5A7Srv
FzWulcUN1pcsXflEjyaXTNZ5RmIynXBHmjtZlQQRl9f85QcOCEt2ORXcGq4J
OgIktCqaxg+m0thUsWoQHgbIXHpgVmXTWxZBpEXOskmelmyTjPmTUApJbk+v
MGvLBX0gS2d+Tul0syR1r963vkjPFGSvZ+hfjdVpeyZZ0kp2afATupqpg1Az
afHlbpGl9rcPjjjpGz29acxwEn2val44pn2hjT/8qknkptGWuCd4mD8sWqNc
FaTILCv+kQxZ7FTYWrOV+za4k2FHebE/FeuMjkNfZG3wLG2Ar74iq5xWyCth
wcfJ7Nmmwz+dwhhUZSw6k3M9PCou5ATYNnUndrDxDA4WluSp/3ushdqhuc3T
+HB4A0Nu2OwW81XSKNL7wcbzQXIw543NJkePuo9dlsPGp3dNo/WqF84D3ZVJ
SeYreofDp9velHY9QDU1/2LAjii+LezgrNieHd1P3UcZEJD8eRVfRYMN0uve
w/0ZmQFNrVoUyQpCTowINMqaeZXRV2nAooU8ynComiYBzeukKPtuRaRhmp+M
Nsor1hmgLFLnyGqhbcWDzUwHgHva9h4NgUbP6k/4DV4zmEH1gE5KoNr3TBuF
BktS5THKeuQvaHUFVHJi6xwzyJ1lvSl5NniaPEn2T4oTbe/Fi2+pvXFaljnd
DdSvGl7Fahe2+KTIKtZEIPlx25j1yk4VOUCn2VQszpt8gYn8yQRgOIQTVaCD
k7a11WLweB2jxdzZ2sJdvGqR636ifb1YaktmdbAwo7tIFLRVf4O39XlG9exH
Brjo4RXcdpc4OrTV3SEmazu0TaAWy4dJHKwxeKizy3lwmnYaZzawv+gyGH+k
G5RltTO73F72RtfNkvZ/f8pHcwJTno2Wqr5npaqcsB8sVkCsb6wIvHv3vs9X
E7sGvHZHwgHXC6m8Ge/RPvWbLTRI+VXLkx6FYtNUWZ1AJR3qYVOPLRD4nfwl
avuGbwbEWbDeMPFwPY4zkdFbW6PY2xdofH44ZCyy2tIwcAvMoFdGxcUzYS1T
ZALN+PSqH0yLt4gfNIZ16jAFKtFW7P+KrCq40KovODB4lY4/DEcnyVmxSLaf
8q1Gy5YMFzQY6XbFN83WFsuPtvMTChCdDDobckxZCeSVrpIDU0+xvdW+jtoz
+1r/9rNYHWXgAXNN4FS5ht3XQrm2y7tBz6se5bjZDtYAx46UFdyj8G6yJw3X
DjxoKxIhcn6gwdXPDpIj+M7pwqN7qfTnJCmLQpwOchl1zk7e95Kzg4Mu1oBE
eI2N28dT9AGnyXfGHLtEVJC6dll8Cmesy7s3vU3zKS40vre3tt7eX5b5RBei
WruBde+os2IisrxxquF31p7Z80uSq+KWniPqsDJHLLy/SlgF5unWqXfi20Q2
q8nofqA7QSnTiyqV11r321WW8c2PZZIFFp2RLDAcZrIy6f6fywSyA0wDiKzX
YoWvCmhfqi6wLnCZ0S/MW4/byfxAej/Rp+i0olfrHUOi+bLob7tLGp6l1a2z
g6sxFzcyXeO04eUK76tIiwSeOLjImGv65FoPAyuAtKxmSOsy1uHFguYxqx8z
UtE2Pstc8JR+Ji3FJpV1oc5duLwmVbv04FGBY/p543Pf/1/484P/Zw/S63Z7
fg4ni/89EquWDpITBvm86WUL1XH0xuTA5xYRMCnu5ro3qdFinmEcB07kuDsj
n5MaULn7vMWHT986WbJtCpsO9znrjJjRCoq71x9+zO7pgicpcPjjqEtqxGRR
kDElXfVhBe1tHC/CYqhGt9oB2oIQ3I1YQc9UOlWp5Turm/Rz0gm3UrdtI31u
VZXgHC6zKzrPIpz9rLU0cQk/R3UDuXfxS51f7Oq+Z9fUfZ31cXXT/LN9X2BF
0GFW8Gibbo5oG1ZFuSl7s2N60vOe98s+7bYcuANcuhV88tE/K5kc+7eae6yS
BbfY12ykk2lQwf5xMhFeDec8Uk17ggHiZLld5iZDtVE+WdknGDLXmah3OigZ
E+1n02apC8cnZ4fHR8N3wabus5F1Wyzh1Lj2phX2szf1e8ne4ZO9fSc36ba/
IwWi6317OQzdmh0QvJisu/p4nJ9cmtFBYvI6mj7u5LQqzBfXw2JKuCg8PLj3
bkTbszMgpgbUa/yV/8KeBHeDUCf5tyMXrOWO8+f3IaNJ2EiMKIV+L7frGjeR
a8xHfm1wVfIN9+V1V90E0/ySu0/W2NYWda8iMUPbyCkQIfwBchOddgqjfj5w
9gzoXX7PfxqhAtrZW6rBbK3TYEJTSd6+D4KMrTFq56p7fJx5nXMtiF2mGp4M
o88maUzGsJvavJZVFCDMYaaSOMK2VW1yr2HFw1cQGpxu1tosVqwT5mTV3+ei
qCm7BBw8Cx6aq5T1M9lTurFfD56ZqSBdZmFgziw0ZOEBbrCffYL7gHZv0wvR
gVIrivCzV69+/bULRJeG6VoEJvz5i1q8liTgIDvm2iWo+ZCEWTLNr2oNbYhP
SDW8E57x/gSiuhHc8K5ym7+HtWS5zupiUTUnJvAD62SwYh+DCMywbUcN4AWe
gdZoufPaiuXbdCmpxGhRMF9gDhxAqC9OG2dRi3sHQvkecxAN6qV6eCpnfQcO
nvbYsAci/XR6uCYs3HVL3Yj1WnhtnctJtFsW4UHgvKIvelsOp/Ca1PIp4j80
KXK6OzlfJd12BVnXXJRRVvVEEphZoSJ2P3BwkixNfuLoNHaNhQK8n0YC1vhb
a3RYLJwljQVi033/8t6NVSEE6AXNbYnHVLbynWh7FYp00oEZmn1KyaLOdmhh
Rsd7yTMzq1VVbbgUdM+RGIqMnKb9DYdqJMTmgbENN0R+vRSkg9nb/nNlhnXs
yoVdzPs0uf27vDSXQy/e5i5sph+ni/YmsBDkSDl9HL+/dTCM5Iqdw9S07MQx
kBobsW979WKgWXQqMdCtvbUmNtv9TfO64VHCMOGYlDvRWWgCuqjEutZTdJMu
qC/ibYS/L7hck5dyq0p8Lt7JfAveBF4ZVQzC3TtrdwZ6nyMm7vuj4YnuWNVw
JdKgsR+JT/T49jG4k0M/kfjGyaQZWYiBSPvypDjpa/hjrXCrMD904iX+L3bg
Fb4cdE1itmyvqZcVyNVffyUxwovGH6O78YcPZ7yHFCvTdKJ23SDbmgTWFZGP
Ic3ubZ7dZQD8pHwn8YykV5C56l9loYpVvcunUzxXFfDz0+apPpJkuY/3pmyv
fAbIKC4p97Z8X6MtDBOSxcY2A+7BaVvB1ZoCVCe98FM0p33IA8tgo+OWEt1Z
A2O0+FtbcUPO8xCHM9jpn0ov+FtYWIObAbB0Xblgz87WFmtrOMZbW6t3It0a
5nGaSJhH9QI+qRNaONYpOq3XU08FtDoM3v9EN4XE24tmSJwkxIXTys7nBbV+
Ebl+v+mysiT9XImwq0raHmPX7lH756qhDBSieg7b6yJRCJeBtCIXAjQnp+hA
NJaIzTYUHAn1mkTpi7Yw8dGX0IrTLnRZf5HhtJ8qGpNOXCfYiT98GNGrGwcp
zauqBbKwQVBiRRN05qh68bHyFY7Jrck9tVjM9+X0HASg4XPOet7Rp39i5D7Z
f0tpFAj7ifegeHO/J5twK8I3tGhfDZwDA1z0U3dpFWICVS0I0RXBg6q1Yvul
FhHkxuBqJ/G8yOYWcNXjE24bDv5JEMTNgKqg2rB4lnC+p21Oz56pqvrcBIDs
Uq4L7i9vlklWp4y/cLNq8Q53pkRf9tCHvGYRwLaglxru6lOpQQda/6oghzHO
0qJu4CMUFBSASUgjHrlwVyRaI+WUthUNhe/kTrxvx8WEdsmY7CCM1ekVVS/J
6vGgy7dkmYkoTSpFUyuooy1sQs9ki4HcACrBpD+sn9LG0ms313jBLdtflZk5
xVWP54UthlbnNA1ZZiq80ovlFBF7p/+IzWE6XyvCRJV68UWa/yrpwM2IuJih
y3TqoI2QQQQIUhzDkffdekJ7gIUby3bvWNKTEPaoiRSqK7fAapKGDr4mKEY3
ukbeuS1SoD8iYOk2qfSRT77fjHxpte1D/gOt96yAYjjNPiFQKkKP9hoctna3
kPS6zElc0ojpCgWOL/RUJ5NlKSgZmcJS9Eo3pubycfCKkQtTBFurah0yiLT0
6xvuJu4f/fJFkk3Z9TVIvlvW5sw4AlxMU2+ig1QXfZkVnayBDXzFYHDmnwqS
8JQ9JLRjZFjb/Dyw8JBk3B35jH06wDqtB1u5g9/2TX9jhJis3UfjrXqtu6on
CpNDcMhWcSqIOkxoMdZjIOo8m7SdDsgstziVYC44gFhc9en/D0QHTi7ki4ON
2mGVOwh/yqOlNRyNu5rwCPzpqmeom1GvsJs1ckT7HO3xwYrumK0MWD8SqzHO
ulr3dHtsBheoA5wJPrE5NqxF1luN//EfI3VJ0ALqqDlqCP2rRzotWnR9EY3Y
KNmtRm5ok4xVHU+AUJC5mDWn78J99TyfXPSSC0BQLkSQXFxN0+vqgqNtxaI/
pbYdYEsUA/qo6Yiuz78JSO8NQbFR4lMCJyK7JtRzwk3rajphwge1ZuRhlRkc
IMDUqBlaLBe7qlZwW9N0fr2EKG+B0v8WD4x6nIajPmOZ6IPRsQrRXWnJ2z1l
xUIx6Ix/QJC5voOs0csbs9+YDF04f0wzGiSJWvxX8JX4F//APag0xBx711gd
Zt2RbnnqRcuHRN+d4+jl5USAZnDvw/XCQ4IGHOsDdLsXolGytS++jiA1I5/k
Be2ZzgXjEakPFxwPoZk1PIig60Ts8XGvxDNwk6W393dZfn1TO2Orup/NMp5p
IOxkxGMSzHz/7vF9x1N1Cbcs91jNkH+hRTmZpsuKbt17dw2YW0ljphCisQbW
0Ax7gYyD4ArvLJqGL11b3nhsuUN6vgMPCfF1gqUlLt5TH+6j5AygYqw13PEs
qqOStJXKRWHg8DK/KIB6HEuwKbwzXTFlux8JB7ANnVfKkDBpyaeNRBKsW9pt
NC6JaYl5JyCRibaXz2kj57VpJZFJS/uVtog3xNkfkcWHg/dGmD2AUBxkhCQ9
YWbEcLMoiaLsgHGBucMYiDz0kAUerO3nXUbnlQoTjTdofEhDV5sC3nTX0YBu
BVWsOQw9ReSb6qs95uYxD32bcjgO8eFsPAVQYzfCpVLXr0y08aB0ChXvTNIb
oVkov+qRYQQDp6zyYFjzqNrWWN2KeuT8BHnMX18VK/UG0dFzU/Yy6Ww2fXYu
seEDjX6zm1QfM8Dx1ybONO2Uaie86n/4MIKvge6rirWoa/Uk62uKqZczG8Il
LzNRCKbTdFGZYCvo3MyhiMMTZ0Bw8+nrmWCPQx/qXGydmL3QaXEFNU54zyVR
4kaCLllCmyDzCTuI/gOJdbXkVuDMqyy07rTw6b1z92IuAu+zhSY4+QM+pWny
9uzsJKF7mRaTtQeWMW4Gu0kh7ixnSNB5QIoum3djOs/LKS4uccAekZAMIc1u
34rfR1M5LX1bwUcumigw3UKEhkhEizeJlRuD8BXELLvaqRflrk+JyYOsFwkz
MPyORRvW0SfHdDStZ0bCtKd54F1Je5T8KrldAnS7E34GocoyAZG35jahoaHD
PWdzWqNiIQn5em9JUtBY8yu5Sd89w+kNnw0BvhdhTP+DHWUIgV2ZKUZwMTQB
GSp4z75WmTnuQOLzpttagbXS27ooph674Gdrbe/e75243vHLbo60b9fq9xUw
fSoPKToJVySsGP22YyWAhlZc6zeZ6MC+QU2R9StueQ76SMYGnMszgalf54xx
yJHNxR3AKVmScijtRJLVTFH4kqQPsFSCTKrqnhSnmXYkSoHBg5O84tzle38j
vNJsKtz68hCttCbI0qEnm7SYaECcptKlVAX4Dae6kmZQpg4VLB08zauPSZ1+
KubFjBONgjhXEKDRDp+0XlgKW5sUM9Jq+0E+QLxuNlBJU0LoRjfJKFQn2gNE
+n3v6zOdGuuOtWgAkNtRxzHYWGMYPdqv5TVAi6LB9/nC6ott3gAZI+xFZ4zk
iOAGkrO7wnVlyRFN30XffQSpsGkMh+yfaYluumsfWpkg03oKDIjbF9tKzEWO
kQF+WLFkRSxJdBTNWzaDwPpqKhF7S2ammsizpJqFYG88ykBBr/arzWOeVPED
BilcNI9QujOjJAj0RV1+n4WlN4p1RgCrojOIiwxYa/dpqItTyHQdSAO24r8j
yobHHCKYaeG9IC/3nS66QHtwukDOUyWbiKVs9uS/ydEx/3x68F9+Ojw92MfP
o7fDd+/cDxv6xOjt8U/v9v1P/s294/fvD4725WX6bRL9amOTtsemnOJNw2Bt
ipEd5RhJ0g185QypKTNBu29YZjD75r7bO/m//8/tF3SH/E+nb/aebW8jDCj/
eL39DTIvAKmUrxWcB8L/pMm634D7Pi3Zez9luQ2WDpwiGGPF3TyBFQg97d8w
M3/bSf7pcrzYfvHP+gsMOPqlzVn0S56z1d+svCyT2PKrls+42Yx+35jpuL/D
v0b/tnkPfvlP/8IQh/7263/55w2kz56xkOGDAdgq/pl8TvYh2URjdWjUCIga
Qy07p0B9nmnOnrqCuQG+2VZJQbBQDPgDHgnOx4icgaU9UkfdnSh5zOMMQiDA
t3ZOWr6rbsZ2DDo3PZNEj5qBySu5jBHktXNoXwizVdYhWDVcLDeO+J+lp/85
aKv0xMCNnRG6MgwgjT7Z7jHIRbskOFlRxsEYyKxSrhRHr+Fzp+Gcd3hG1tFi
UGMIvlyPGd1lLTDI+18Hoe2cDHmMMVgbnhC6hzGfj01ENQiqm37+ntg+3P7j
YVhqpiG/LfQT8UKThgfnxtVyGkEWww0UY5V1s7rV98GfxTJQx91+2KUfyT67
Lpaq1v/w4cdRA/HsMVaf2UUI7S4rQ39inG39EE3HCkWH+fUcq0wbNn+WTrJm
Xw6d4cHdAvxLbRFnSbX4OwO0Vcu3vlbkWSUbD22q9BSXSi1Kr/lW2XE3vW3Y
QfFMc86Tff5rl7aHFN/yOp0bnJIHd6aDkbTha/UEclg4mHU/GNq3t5mMxaug
tC2ZxkBa8xA6AQoJCqDZr56Cu1n3kL58p14vEG/prpqQDiAnzHHQrIGamWk0
sTBZKJo7AX6CP2VYU/skljM24s0Fx7nQHvsZZNIGaNKeqpWPgkkwdP2rkK2N
njm+Rd58dqeYLoPPXCvW9ia/vlFfPJ4yzIMjFwPphDHzVAZiNr9ABpSERvMw
j4i651PVs4qpS5U01f+qWArsvPII73UZORD8Dq3VhjzsKTBDelxJSk4V5OSY
KxReU5pgblieCYEvLGCHBlWQ3rCjhGU6q+1k0EqMlb06cO6hmYH6IVj0kBhf
f80hf+x/LFfj8KGsk16g5zLKPU41a2S4ic0lkp56DYaE9svfedwSjXY5VYGd
wj6khfwcDadB43hEX1UhCTPlLPlBzVK7OnA9Vh/dnbuKbZ5PVPuhpl08NU5I
CdQiSb+wY/eovoZYYt/dCO+uZqzc7MCHqMrx7q+/r84gCRtrFYed/y8nm7AJ
2cwqKeaXBey1PzCvhE6pO9ziJKvvFwbgp3toXombWrckb2bacbLxQ+XXsdAI
RU6t7/ntwa8a/4rQKhhliUhEYZhg8seNjX//939X7kH3f39qpKj9qfnAZ2bM
lHPO/159oKNSaEjL1vqAF0QQMSsPWB/+tK4PrqW1f3AJYEMO9PvdHKzKupdv
N5rz8Kf2/vnO0aTYHqN/0G/1yNFP/4wJ04XVHn+57T99YeCPnIbmpDjhSdPy
J5U/j3v39guPxdvmS/2mKfFb9ovdpw2lEMYqeczTGJ0pwY94mragy+15xOMi
0LvJI7rSnBQcN/bxiHVdBvEi1vI0qOCn5j/+1/9djxqQVmfRRQC4DYlRoFou
2XHFbeaiGoDcBbqC+p16JN+B3GPPjM8+oaunTtzUtikNAUTAgT7HgmmkaQtv
8Za+RnSWilhaQ2UZ6A44rusy8sIrjj8on8AHwZr7pYw+uUvtfRFSqc8q9P52
D5LQ6PTKnTlYlzASEdxMoB/fkO1g7Vgm4JoEtIHeamNLbVIlwlN5hpPP4py1
T8cUdMI8o4hg8k/J9k40F6RySvinh13C1183CmM+DXL2svD6sgaf7UQ0s9yi
DoVbOrtppQn15DuM+h6E+8PlWRso+SGm0KgB/yG3iSVgrnS+X6QSjXTIrx+F
HPpPcY/uHxz9dZB8WEf82WtkIUTjDbP6mNWomYfnEthIUXOGYLCOoZvDL+Tz
ncSzoMo6qvrM68jQ8zY+1DY61EgnN632jCGCSKd0VHCW8JOFT4bLtRI+5kwW
mfKOz1fptgH6BkEmnx+8TzGS8+KTbE8EVVWxauacQtP7foCMk8CBG6W8IIY+
EyqE/q2AHM2FHipbRLdTWcSfhRLFvGCQ54LNNCnG/quPczi8TW6YHJgnAQgt
YvA9C6KiniMmTNKyM1CZmR26EiASSCLNFtbWCkA+yNEM4kDBLrU3ee3wjQU3
wUECNd1tj2eTgC3IeOTWhZ5d4nXODtGIuy2YcQbY7YhXQHd0dKZCsjDxIgqr
m09VG3PUAZRvbG3lbrQNQjgy9cYf5U98+SJjrihq7+OVLbdHAgsxEnZGJAeS
5FeJIsD+CedEoiZdcv9gO+m4Veu5GJyxf+glpoQoyggufFjK6OPjd2rlIUp5
hSwov2riiIDPxP3K4Gx5IflOuF7GNoJqnM3TMi/onel0qTYJe2oE+6NpliN9
LBnuJMLqvsf0aGlyhjD5SDB5nZNh/zR5AqQ+Y/X6JypGunQkmxx+3MpdykKm
kBWiQ4AwvYbny1sjCYaHCj6cCoh8RnJ7MmdNZQybdo06THwWthmcUE9A7Q7R
ZQackjO4OHvjsyz0Z+Dy7uUYfxa5Y2HC1vhMgzQEbrzYBfF5te8yLZ/pqvxY
NTuebCJWRjIguYfDywahPT6UOaQ/DTZlU0UyGbBmXFrddneGeBkDB470rbkc
n5O3X3LsxJ5zd5HgLp37FIDoQgxnAOpoU7WQrjmPGHyfDPtU4kIRrwjOGH5I
2akYRdektIL//23K4KXbvFhW0/uY8ywcbkB81qrqNiNKpMSx482APz+dvmPn
6ZkG0aM4gghYfKcfEr6GGbc7Ya6MFx7dhnZkp4/XrmsbgiWY7uHkPdCRWE32
mhsR+lWuOVZrTvt3O9H5/p4vepx8uIFw2vfotMu/o7MeTaKRpfrTS9d3Krik
lDEmydtTUlXGHCKfFsXH5YL/6s7xtRLhkvwf68ch+vL5bfFRWAPP/DQ40Lg9
Wjtij9ZtiyvVmJhiGcBuFviQ5vcO1/9HC4P4sLEU4HvP5JHIhy8IAn5/rSSA
l/oRRz/+4kMHn9UoncF1xSRm0Afp9+skQsshZywsPv51FR1jO+0PH+O4+18+
yOtO6YwJmfkErj2mqhpjW1Af6DMSuFA2jjmqRrDa5G/R5kHb20n2AOrvHwcB
L7tpAfS8LFRZ77xf1st0ilM2pg2wV5SLr6u2O2SeZcJ0NS4EG1pnZo9BbM5h
xwcfo0b4WKozs1A0InK8FPeOvL6kTquPg+Q7APPDtys+rBj9spRVYocwb132
WfpL9486QqASnqhW1ZVbgiaoOTefzctcsY99vqaSxfBoP9yoFdzD8TmRz3mR
zF/0TQZzGXxSe/TbvmcgCF5vQISj0f22k9EyJc3P6BiCL/lRtX2sA1Es2uZD
V2vb1PCp471kLNPGHxxY87Z94CDh/iczTrQQ7xiniOiE+T5JgmGFGB3TkyKO
sOBc00mkOTi4lw36JnXTrx8A3I+uTz50DCDzFwx/m+GAzPFFfZ+mCygdl+GQ
YE0wU45X3/WzdBIOBRAlEUeni8deLQvPOMSJA1gJqqr6UrRHow/O5oyy0lZj
R5dKyyXMAQPGJ/FUDB21cOc7spOuOVGo2wgAh2SFtxn7Iy1xQD4YVz5h/X4i
qPqlKFJsorMPkQY3ZbCAnhdBuVY7D5IcY5zDo2G/FQ3wxWIn6oLLkjdpPsU3
EVeBRuN4bc0xN8OUOCvVZ4kGpVtSTVnB9ESpW/WNJ1YvNeTHidoDZsaTJIq7
Qhnp/V1mkttO0fDkcKC3xPBhyBXPp67/X6RbaJHdYTvJ84tdbeY73wy8zuFr
f+2Jse7eGTjQ1zx0Q5DmDnRbxc4SGgTtNrh4+nIKZBp4XLL/wapF267nevd1
ZUVlIFkwnckmsoHhWki+fdqfIH9B8rJwR8+KOdR6dkkJ+6wTHxGMxhU42NSa
Cjas4Hv0rYqUKya1NfZQRZotF6RMnd1kDnby3JJJU6/0uO1gfIB0d6blR1Ew
gSROHJewoxVyMMwgJzjIANTZnGe3yopinCWqXoBVg8sLuCNBs0BzPNva2nE4
rDJTgRFmEZrxIGdHcqHM/A/ywTQyGeNtmPFuHqcl1ki1vlMgJzvmbIj9Y3zc
iw+cLfbSXeVlVfc51bsqpksTIKx9KA20zAMOSjEPHO47HOpMfqmK+cY/ks1c
JOrmTvJvm1bSTX7X/zRQFqbNv/WSTaz0OW19evJ58qvFb4BvnuJEsJTiMyqZ
QaVsDWQRLoWFbcmVHABvod9WtbqlvBbCYsHSsoAQ4dXhh+yGVeuUdPCP/Xze
BVmwLvZdCa/anMP6/rCKo469YJga27dJZ16EWbfUkPQ8VMyiTCuLaNDzgPqA
zU5w0RkLXrR3lU3Us4J+qfvM7RFOQhZK8k05M5uCCaF1Otl/09jKxo3VyLNc
oZTiD7tvhNkV3XivX6lM5mtYeDZyUHvjnrgPq6b0Xdjf5bue/HjohfspaxCy
IXc8Xk5deC4r8DYLR5zG8EZGTIhR6u+Xu5BBPRUPh0DGc49U4567d7ZCcnQb
aYikzUpcp5bI6UFsjKCf8QaYS94pqWayFSQxj2k0wuUTGdHOFC/sRulMPRl+
SMyH4R0ahwro09tchU10HDeSZDMMu9BZc4fSlVhM83J29WR78HSzh+cxPziT
/A86euE7Kwd5Qw/uMIRJ0GpngTSSE/W79MvkxUYoL+Q2C5nYKl/eywUFm5nZ
Dda9xHbGc6iNECpcb22ixWVQtMlU7npFe+PTz2JDgDHiebv3cyL7vQ0NyiAT
WksD0jFCDv/G7/3S58ELoeZE13kxFiI807YkF2niLgnNb7o3h7PwdFUBLQcr
5IuSK+TAwfMxy+CZ4LoRlonZ6koIKOLZVc5HXW5UTC+jZ3tCCd+jud47GYo+
fbCk70GbQI2rXGGQQRUvEcta/CX4fSY5EXkFeOGw+shFLWjM7B1AvZyU0aeC
/ASzhUMOgkOmRDBDWPO/1sJflZOMaAbJwgwndDISxgkNkbHNyibL9BkQE0LH
IjlveeWTvBkINpGAGibvZxmM4XJUL6BRZJxcqAVZNO+qF44xYDnkyAH6H9h9
fvbBN5fN+5qWv5C6tNEXm6lb3j0QthKmflc6VWEr2Swrr/FDuPDTKTs4aN6V
ncRwzZj6vJSZNk3lLs15PIKWs2outkXZEJAdLRWNAmVngFOhSVvhaZihJAs6
wdBT5G5XqszQ3VBBs31uK7ZAyHQiyalsK9Ju4ZooFtYZOOonia9VgM1d03V8
+mYvAdtet5f8cDw6oO9d4067mUVdYeMOol5DuIHdA9tU5hdJwbS8nL4tt5eI
ev4G6mC7MNWLwfMujwzpbywSaNIwCajox0nHnJzVv8KplkZsmvlQ2FEGXZs4
uXBn7OcVaH2YM3+YhEI4AJBzJPU7qLQt4HHgEpWwiSF+VwHVQVU4RrSKiR/g
RE6WixVgeRWWQh5o6VbAaPC+0fxq9OuGvti5WH8/XAggfM0TF55QdUXm03ow
tyLA5mz5IsHBr6j066eKUcx8gsx0mf4WuDzqoFYwh+8ZWax8irVC9sc+4CwN
GoDPIWX5ko/SmE27w8TsHx/2oJqgYiP29k+n7ziVseFSZJ7pW8g2XlHNTmYz
HnR4J7olReKKsOmzpRKcdcuLRS8vluV854IOCh3TbEf+SZ8cpGP6p2uBpVvf
NbFzu30xkL0suB6XkBCwwPhsOEs4gyPEsyVhFR7Wrpfzadaw7Zn1xSohTO8D
zP+DOzNEgRmVeDad9n9k5EBE50tH+NC7W7qiwHooAz/h1vmOfiJDHKGW6zmn
xerYQ8kaHzLhSwk750gC1fV96JLWxRGsySC6YiZErERuXnp4jtzfyFuJHH4e
aR8LfbUFINQaXiZlck3nxZxrInrQL5Pwwvbi1JfqsZkmG42MntMMKfAZwxti
RBE3/NtqRcDd6mQC8qTf+zxu/1FIis9eukyKfEBdfLL9dPDq6bPXT9DAYHg4
2H76tL99IblOobdj59nTZ8/DBu7u7gZ5VXAjdts+eb397PnTwU09m0oTX6yj
k3RQkr0bNnydzVPqG1k+C258Op31QcS0/fQJnpWGhf1Y3IgjRS8ne1DZSQFE
o9vfdJu9TfPxIu2P81k6oNl/YgRA1ZNpylvjiciRPv0rOpR9c/SQajLuV0v6
CA6TgaalQwc/YfqHYw6rXi+nGlw5+KnL5dmfbL96/W3Uo2xZ9kn3GmTQIlP6
z5NsmlOnrp+4558Uv1xIHMlte58ZtVxMzO8jtzRX2KzX7MBK3TN5GR42VM6C
VLZSv42TZ5TyIbuZO+tyknF4dsO8Zya9tudZ8tJLjt5Pb4tKr8W8ETj0+Cu1
TXSBa2BS3sOZBtyHeX3YC2nb2/MOmt9FgUvKHyRVE9VPnoSGXsWtu+gW0FQ+
FcOniHoXZ3heH7b4LgBnYmdlYHXTRRne4IEB3qEB3mWlX9SoDk3qaCyACpCw
dle0sbC77p24ihbTNQnNDpiHLJQffTJci64G5bwbcEISXMsj47IPMrAtb0He
3DXoo3uBn2cZ4Sgjv2rxGLxh8Qt9rjUfMf3980djbjEuihd+QnP+LaAvxyzI
yre8dw1VPHh1gZuHU+BIOX7566/CqPfD6PgISs4etHFJkHv68pn9de+749OB
PMPYbLagKinS6T4dXfOQsDRUqSgpUDlhsJi4+ilKpLJa6uNbxT635C5pVIiX
mrsjBDrC9HuxSC8ixoJJssez3b6Qi/R+WqQTUYq0jsQOrkd+CVH6+0XGueqe
Q9xfh21J63z/XdyCY+Kz2jpJWxqyrqYp5ort2Xw6eLbZZRF+QQZA1Ia50HyW
aSdwWwH/dLivr1bLy+jVkXH6+HeNMMOqOPEX0xqvmZNDPznpK5VmL/lpnn/C
/mL0M7+SfVrErxx8WuSlh2a2vYOKQmHv6AmSfm3HLMjvxYuxauJa6ND4cZk9
Mv83TjcWDuaIaZJVNs+KOHimSapKHRKOlhNsmUskhBnLVgx7+z+ainvBtjO+
XchKKqCg0XumwQmp/WHt8vsicqIGdL6bJI12JIJGXmgjQDlHTew5KJuBuzlu
F7z6skv3sbJZmAnB/m3QaANOSSZI/wo0Y7qfXKD3HI9F++RYCO4vEMC64NpU
5osm+2dfqWzUcStxjXQRJ9RLzkyDKmBbEoBJZIT22omYDiY8mrIUVpurO+Nh
vSsUnZfZfcFhBrCA6vbQABVYomhfkI12W+QT73vQvAJlGePycrZTXAVs/0X9
TiDbXR2A0FKiLak0q2ASz7kQ2SwvS7lM7SoA5YnzlGhyj06EfIejbm1OksAt
w71nZ4mOV9DrK6eb9PD+O54rEbZHQUMhlxPpzlLbnf8ucZFSFTcVm06NhaFs
fvQn0uUnDbuZl+eia6lAgdOIRydfSa9LqGrLRTGPtR8XNPK7KrBmRf9ZVqZs
qkwIzWghBI0gFExIIApJLfU0Vnab2eyuGm8zFD9XlZBVYLuRve7bN9q2cOv9
7JxKcv1dz4GvW84DA9peQ8h0UrBc8r3tweAH8sOsX1PHxciPAAJOCW8oduud
+GLrN2S+a68RdBO90F1qwcyo0JYgb3ANBIxblvZiy6XCcqDq2oVP1HjxENhj
N1K/wnwWx9AdxQbLJVeY3mgMUepRwDvGjiypu6uZXXxOn3/7mlkLDoP7vFLw
hNSVNq3iP8fP0VKFls1tLSeh5bI9wwV8EM6/3ndOdfcJeMJ+Xhm41lgPzhEP
XHgw2yAedyxCG5OlGIUoSfBr9p8Xd7TrA8cP+1U493hOkovWY3yj28UVhWIa
75Ue4dgJX2oWk4cZ2iXgFos7J48pehfAKNMbHMTEinzeFUErV7EDzEiqqsZj
UjKFaayjPtPFpICsNpo0C+HdweGmJmCLywczU7AhslRyuGlxzVGKDt/edHUf
a7kAN0kSNBAmXiM5C8o0NIYV4JGdsexFCxM6e/mkt5tsjtXusjuhWKTQIsPY
AUbBK83xoWUpaRbMewnQDh+LK2nATp2iYvgO40qX1EYfP5gaIlshr6CzIzDS
d7hvqG0a61I3R1fB2beM0Z1d5tfLwBZyhmpgGlf0XsXnmUGpoNEN9nAntULY
+DIPZMbx2FYgkIPs8WCCA96NqC8iTYaEn9ctzv2nSYCWZfr4ePOD/ryWkHjr
RwF34YTlf6z/0Bf8fps9/6Hk196XWvuCsy9o7VnyKzX2N4uZc/YhAm/3epcK
h7J6BWipW86YoDhVpLiAXOC8wsoogdnaZcEW12NkO303QeW5tgw6fyU1vEZ/
QZboWplLgn2GqOqq7P0rSwCVzGt6qHuLvvmPxkd7icjBs18v7ISLXA7wYYYg
OAvEKFI/IwYkgVKtukA8qKi1b7xgufJMCIHuoUpottaOhUZJYTO6UOJsyKuI
8TeAj7W6QkiDKGbRUTZa71XWJhZm0wwJK2Bhx8x1hr3ku16y10v2uz2XayCU
mwnrs2oziOE5TS/xm87mIbPj8SHYFwuCyRkFy7ApWrVQbuBOtBFI9InuLQ8c
UjolJpt13eSNrmpAOAMzmnUJr6tTNXCLeso/1TuGf35BY/szKRd7f35G4/vz
ttRSixpXVnhpViM4bQfKkUw/HBh9oLQAjzBcJqaZgkYJt9MkXuV4T0R+Zz22
5oVonYExk6kCN6KeQPuOcDEj7E02iIIfmFbPuxQneQV+JbmB27WT+XJG9ydT
tlhlQiheCaLXor2G3NTK2d7RK8nG6W+7rsJK6YLHFTQRCEUwVSIFpJ9X6ZiH
bgy5fFzmfe2S6PwjeDRI+1XPxooH7g0fNOeBc+68xzvjWvxyH9WD4XwKf0U2
hnoWdkiGAbmLPHoNp3BKfVFM8V8+bvghm9/mZcFZMBfqGAIXbt3S8J4L2gW+
LDXOfekBXFyklKsD5DZq56iAU81/UU63M3xBjsv9rVOoZxfm7gFP+xwGJxrj
u9va2rM/RaoSe47MFxX5lD7HQDRep7AaE58Ddjgy6YBAemxCvDzXuEUuCbsc
auTSvZK8y+JLs4/F5DwRNxRtEHNdsdPd6jWZD0p2nTfhONmvrKVwY8PBFhIn
xM6576BORTVZ/rgtqPVcAi+abJXvaJsBvsV/F985SXneO9dy2Ph1M0rDBnhd
fbndyFsUzA2/7y+cc+Erjh3Fcg1/Tt4HXMbszxB2VCZibmyQDrxptCeLu651
EVd3u4+Wu+pSPRQ/7W3JFge1h1ctFnTNVwEpBrvzJo0ObNgM61hUpvTU85JK
uPcSZWsvbIbPAfXCMUIePLrgfrHI83Oxac7VqBTpgPTyquUvQNucZ5+ysfsl
3aPUH/MroQcTYdyOQmtwl63xk/Hr4hw7bXOOwYXgdoVVd33IzzFhL62gCrhW
DBxUGdzzikFvgUhyT+M7d7CO2NyQJiwZXM/kS7qqoVYwUP0q9roM0vz8MrtJ
b/OC7jSSL32ewUU6XuunET+TlmzAh77T99OpSZW0lbvgJURyW+2ANhNaS2Co
jcjcD1L56dJ/rUqvMmHtX2Ti4wvk9WxRn+fzX+Tb52Jw2j1zjvv6nFO5z2Fx
01+65iTAqXNzEFrHkmQk3jkXNJeerXXsscqirseHp36hkdzwdXEnij7BB2+X
P/e1zU5UqCVg5R9sr5nprjJr8u5bIq0NSmiqmvnQnXypqx55CUNxw9mtXrxA
KVTHdyRJVsTOimjp8NCqrO6ZOW2aGVO8sEgrl5ekzHSdGGpKyJYs3EOG9mD/
lf3rUkimGHLcIpZ3VGC1SezAJ4QcGWg1W5jZoAxAJ+L27xmNv4A9laa5BwAM
/XxPA5l0e5HkDlyL/I3sE4q/2vxY2FLHPoh0BG9wwoJ1PFN+/sPvgLjBchh9
BlX4hOizXVGDwbtKus5HZgHxxB9Bna241isvb6PTqiO4QrUMxjCPVZySwTAH
aG+eViARLuUrLpfq/fp8CO/YWimM+jGmEF3dxoECRpbQ6YvRoXU1+ouWUBBL
TfeuSTF9nna61otgH5l0XuKS3jUG/YwVMinizCvKZ8S8YXbcvE0qagAdspZN
yPqYXLJ9cyCJXNDtaecurItwee/irs4DFVQTX3ts+DaNShrQNJN04QBMVPQi
xOLp7LicgrBqfc/nJXGKbzZm1vogn5Vmv/88xPO5jlakqk3vlQsEIDI9eEWJ
23hPfHSyb1mR/JlX4jODhlSTW1EQWXWKDu25K8gBRcoVjuffQmg5jrWr/BOo
fFRkycUUl/ZADtoT5BdpONmV9ziHXEDzJ5JcCJfGWIQFq223yynqpigk39cC
scJzSmQu3CMoyVSnkoqTTu//Tk9a6JzlzbnUDsHn3rKdOOU6DG630XzyTmR9
w2qlV9rCdDo7d9MsE+KEHcAFy3FtFFSurKB4SFzVB4bb6zRav1j2XYhdZBVK
WDLcFY6UUAWFhs34veXcnGn8cqguc82lvLJaYMGWjdzYvErX+JEj1UvH06Ba
ldOjxBGocb8g8qt2vteoBE2t+VZOoVw5zQ/pkoFyaomCdotrNOMBSR95kZvy
wunDgcOOgzLsfvGS3wqztGhe5mdsFUU+G89AtObSL7NfuLSLzPjFyfG7w72/
nr8/OHt7vH/+/nD0fni29/Zi0HDfjLNybu/Ad+HP0wyqY3jTimpHYqDv9qfV
ArxNpaiXVZLhDck5ByXtoK7tCJxa7ngwNz7JUu1ih7VQknRSm310oczEH9Qy
bUpc5KoV864IORENtu1mLGIvChe7SV1EF4NgQv7f8d60GKxiO19wd85v0upG
gCHy7yq/VgcN/7vlxbephTBp+nIpQdsYpDpU6k+rbpmREu1Z8Vr7q0jYyeoL
AdFkCG3a0IM53IlH0nHIGbhKTLMnkcqzPtBB2apdQLV79WJZTjujt8P+s5ev
Om4o5zqUzwkNBP+h7nW7FzF9504D2AB9f0a7OKu0lgq7GSECtL/f7UQz3THF
u9lDDYNo1H51os/bODaNldLVpPeo0wtFG8ln+fmLtrH+Uuf4DxmP3Qt1YSPs
aCW1zz9m9xcKLHWNV6GHi3M4FJ8Eko/VwyWccDjWXZaBBRzGcigi0c+NSjgC
W2KM+b2ir93MEQUwqyMoukNKyScQCSTbyU2xZL1ia+uNe4MFCVKrtPZhNN+z
DAcaksonGzhmxyM8ozlfV3F7SVQQSRCgz5+/CEBB20+TTgPQwoovcEdWgoCN
xYdKEKjnAaEc31PFZiEzkZ0R1PYUHFgsfLnp4KNdBcv62pzLspQ3rMgCXUIH
i2J80z/cx/E+y2cMkz8Fweeibo58d3VIvj46bh0V3CqvuVafJNPl3s51F7YI
7KHLZxtes/qk2ajMCql/6qdkm0NDW0Xr8o5RNHDCJb3SSlgJGNMBxd6VOPVH
Q4I34rjokzI1r5ezlT87d8T7d/390VALYrw5PBk9e/oCxjh2MkD9luYNt1W4
Nzkbu5hfS3WbcO5o6M1dL/dv2+FxW4eTbm22gmQ/1Rk008/X8E3hySf5GjzK
pNickCSYVJfphjfl9wxv1d8ruk7heWOQFaDc6V1PnTmoYTRv41ghk5QtMijT
XoL1Df8Y8WbxNvhZrE6DIwEZrA4vBgmLxbQU/kdNZL91r+zQUvxwfDp4f3hE
/3sCTWXNTlk/y8KKhfHobqLhcKv2HXXAye+eJPwt+i9/TXSBlH2KIWYVidQM
LoSBs7UVtQdFQEDpJJ9ot7tbTIl67lfhiaKAVAw5HHqwmIN7kdoLrwW1WnA5
JeYt5minkbe69ChGtYAjLnc4DM2MVTS9AVz1m3YWKponQYowSOaHvVGTMtZ9
wuAdA+6tLb1oJ0knvMJ74QW5QhfcFY8lj8nG4YwVZ4mkjfn4ulLL3gbAQUsr
S6bMVH3mEV5XnAdJJWEtPFowXBRjUTZpOXkL/F7LiTx/40JuLOnAPdCYRXuA
VseKEstfKiPHYVNd8WXWCDz//lWjMIcp9Ci3um8o0MPr+wWXG+dALdz7vbjg
Z197LGsSDWyeuM7H4/+6CjiG5cWSNXCkxEA1ZJfa1pYcwTXrEDIMsF+DbfDc
UkxtDXA9VZkkYphkAgUXW1tlJvHfmj2bXsBKOlfsWlYjwaMZzUfcAlhFhsgS
Gyxvr7JlVH0iNxhealcdU9CoEJrDASAe0lpYeyzdS/ABmkjUDO7F58UICKZC
tWBhoRaneLxIJBl8zmse1O8MYiU6s/SwcbmwF8YqR7N1fpeWqjzXRm3gano1
5fBXrSWN+B5BmtWBljZSwJEhuCIgBpd8g0Hpyr4FuUlwl95mcSUleAVJ3CAm
pGNwb6oXtLXMEic1N9gkG7XjHK78G9Rh5ksGo7C1gydmpy2thVNfurv8wTBI
3eFbn/4wbKUK6FyQEoE/n/jad1b0SxpjoSgLMJ/Anxhq3FCxD4Pee1CghpTY
0EDJbs2d+nZ7+ykPjFYHrZ9aJWFMzR5ngV2vqkMaO189EoEJIrYKL48rRuHL
TlAf4yRiFXRRYQDOHuKt2aKScVEGbkhacRXdU0dzfnb2LpqdHWeIrJg1dDwn
U6kD64opX3KOYV5MtGiQWVHmE2YqYcP5AD26HrOqbp+PAd7XCG/5DLEqTzee
WWlSasIwPuZhUeniMZGyAdQrYv3eEWS+YNnrXMSXVfwlmTZz6xJ0wcYjWoYM
mz54dQViL2Mbxd7xprUsAM0x2wqhN0aNhJDi/ibVGnCgKCWBvm/1rnveKcSE
68WVJCDsB7GMTGv/0sRE9fx8Cb7By67zFnOJcLjnhaEJPqXKTPLUUqbQjUHy
gSRs32UCSg070S6CyOq3cjpcj2krShmUneRi/3C0d/zzwemFr5TgBFFCG6Um
uXfCT58GT5+fHoxOjo9GBxd/mJvp7/V8ca4yuc1nBB6jSosy2N3sVWva+Sft
WXjyus5mtZqSZ1l/2LchbEfeW5GTdjJajswJg8tsi8a5cy1Nv1mN90OcevOn
m5y08boqbEg7/rE6X5bTVcDRPjMHkQ03/1gFBG92m3hxKz4+2pwtXRz5+TVF
EQ/q2DKRmyufPnYXulVmu3f8M5+bCSZVAO40Hbfheg237x6KLx8cff8HbsSG
SwvDAxS98vCysESmyFk6/8Wsl2y/6j9/Jk9LhT92DPatqtIf79PUpVz/fLyS
zQRPU+FWljQApTa908YyiAR6vU44sU9EYyhMTk6Pj9/8ceu2SHnYYfK2rRib
qt5rwI72VVXAZVs6J+fnwIlDsuAqdnEj+1GdpCpW/NNXDX+4zbr0lIUR4ijp
KqIsVuqZkaTHcdKUdeug2CHm2ZdCYfYSqXjCGcaY7CBwBdtEUUopIp5Wo+Sc
a5Q4NC1AXW2YHLlQ9IbToiQxOtEKmbJGc3Jw+v7wLNHyEIPwBMufLjiPoq0U
D3deSOXFSoreRnPy7oWyv9FFJluV7OEVEoAxi6vFlBRlKZGN0wXMhe3083zG
qzET1Ka/E9PJbV4V5X1Xhh7e4pzVHl3rce+3tlzB3i0GiKxuNRf84ZIE4d2v
RLm96LdWmaFnRNCKGWA3eKetMkrg1O/4IpJpWAqgG5ODt1ZUj0MTVgMi+qVW
b698l/aSzmr5hrPGS4/5slI0SMPClt2g9nbzCAVsnY5fWce1q8YilgyV285e
eWBdt+jWDwpYgYCzmG2JT73ZTPyagnX92Nl97pI3s08L0RPb+S4uWZdQz6cJ
W2X3ZDJnBMpLMomvsWt32DEUDUGdysK/h+Raxp7hsWa3maDIevHZwfgY6JFL
0XvtB348GUYMRV/iJ3JSOrxigjnJ5r7wiNbp2s+uUiThcLINY0C4t6Hb2248
JmtmB0zcrO1NEUpB6z1k1kX8r1qwbZbXjaJsLNOnUloYhiEOj2k1FlsZQHSL
0Opf8zTHJedh3VsBP0VJXgnL7MmwiqMgYoQ2xuS43tM6HEU8PiQzcN66pMJH
PdCZipIL10zVVgpYW7NkHeLdxgrYvlUdq9kgKAgGm1hhjkYkee6Ao3ptoERL
crEZ9W3zAjRzZCvOLaKlWJeYY07nwVFu/V2xA8Lw4ohfHJvqIIqnsMNOTVFm
+UZrt5mjvDRzdWBa68pBz6Oqun2GQjj6VGQnG/gQbMvLOUBMHcHMGVVT10zZ
UKVySq4xtQhfboCxvFidTb7AJTWF3RJKV6Yp0OYmxZ8QzTL4pCKhA7YGD8pj
KpGBSuHKKKNJIaG25uNspdstAsXOcNvMeVGwljSHDmm7hA3Qn+Awvze4RaGi
ZGL1BUUTlSXx0CXSSo0AHAJUUuOb151RA2l+I20uaFiLZS3eO8GaVJqgM81S
KWAon3JYqJhOywCEg6ADfKi5GBGN78KogfV0uOL1wqbUSL9izwcitdlsQdLI
rFgP+qmyepC4L2ljuVH0y3eYjUk9CL48i3fZhliejuhcOw7Pc3hEx+nk3cHZ
AbgdNkY6V01PPpJoG/h7xAd6PsL9skuNwgeB4I3CS/EjLq1zsHlxflBdcyoQ
NSGPGIC7uhA6KZFVwiHFY/C1K5mJyJXODE+tbJ1eUtF5qTW2GotvKBtXgG0K
PgJ/v+KzElSEpF5j1pUhBT+eQxKdB4mSFx7uGnMlsTlUtRhGv5UAqUletN5K
bHpJrMp90y+ylpvoN9IStT0uwZg4Y8XxEi10rRodiqYzMJ0OQNgA+RompnIV
Gdq/fDwsR+vmXG2xJqdOXC41jretlmINyWxeD55Z6/OrqFknsE+sEumJq0TK
rltGdHJoB5g2dxy4vXbjLsAiajpB50JKU7rgp/5Tcvx67NHI5+coOnmOHRL/
BrxQXeX3esj+k8MTuOfF0G5eIP6+CNFpoVWXz8OKsVqqiy7Z6ANKlVpmgoYQ
zge77p1/iJfM1N3OewgfJsvmNaNl6uocOj4cZy8U4/GylGT9ldK6UcdXK+nW
9wJpsgvDAeybJXjxb1SZLLmEg4ZEFPaBQMazV8wowsEfRRSGRYItBFFIrW4u
GVZQT2SLcGDiMkNXlPkmjpq7JwEXDDf9WtDgg8ImlDIeEHixWU+rvo1xU2F/
nCt5IcdfBq/ZkyGwDgCUi82Dv5wcn54dnPZZcZUzb6iOTZ9WyU4xhed9boPc
UTfOrRvncjN3uxd+rl+/ePEqAFR9M3ipmN/bADCjuDszy6TrgWGJ36MPBucf
JO/zSnItxyljSeSidJFW9XWckz53dHTwLoC9bmwcWhqECRaHqtIYHS84iQgh
N5TNs7pNhbhS0TOxdBMhZFz5AW45eGpga4n73wfHLZ0ehBdGGaN4K5cD4Xre
xzVGzTOW3OEJDGEWoHksaONA0s0TrADH9nw7VzpUOwLTYjZe9DUc3c8WAFmV
6bQPgKEkHVT1JC98T7uOrRes6r5ereUCMxUNPjPNpZKJqM0Xm6RjZZtgaxhz
RHmeG+bd7ehwTuXGowm5sFsNqGKNBd/dAKvuJoqPPq/3xGWrbQqInbplg0sO
T/Z6SlzSJ9kOjlcrVcZAoXs6LAgRoo6229GmPbv+SOyPs4MEtqQSV2N9Aa7b
hrxa15GZb1xejExQkPGbruDyFCMTlTR1jHy7AqPRzemx427PqOfGW8hrOLPp
+EH/zHkXFlqJgaFf4ZFAdZUtOmNbW36z70DEe74nPVzp9A5BOOcynTtkuCfd
Y5+sajdsH+dXCt3wf4knE35Itxoq+WecViWZDhXbVdTr5p1zS2rjJTMEiCUs
7ouwfAYMDe6enrKAZqAFKeKIbDdxEDdtAjghXi4Il9HIbhHRrla6FST9OA/1
qqrkIs7M66CmTBqucqssUYQPBJb8uJPYRLJ09dua9+JdXmmNKF3CUPd/Y5Td
VuqbJabCZPjxnoaf40r0gh3QcvQiCb1zI3D351pCPuIch2GBpkIbmWQTSxnR
rDl3n7VmyF9pQVEqhgjwIEk+ehzJENhtqG98XfkbS5MgLOcslEzxTdrh5VO/
TZfJn86UvU5CRa4gtiCkHNNm4NsJ1PHBxstB0kGQhLVga5euDkXFtajAC/yO
hYxXfQcbr6Qd0Xz5bHelqPUX+xNpvmBAc3sAr7Ag24X4tXIdntQ9d/QhGZdn
s43CPhAYl4i8JwcaebcaNyL5Ki7tbls4DLBNB8nI1EN/MKxEity6Ph+2crT+
HtXc4LeLc1DtU5Lljd0klSNth9iHOH/oLoIOmJiO3AwoAKySiCvFe6ZgFJo1
5SnpGCygl6wABHree9WTIFRPo0E9LRWeciV0YSQubjXP2U1OIC6Elute8IzT
qe+MwUxFp0iTRtKtRYFoKiuOApkYlGZ86NtqMQvQQmwx9RQGqxXET2BSeNd9
cCmh1ibYchjPf4d4FKOy+6t2ZWQzmhvLNRntEWgFVZsaiGzHxgqzJm85bKTL
2+X7ORmRzF9W65z1n0PNHigreqPzoSi5IBHdlOzzQp4T0ssRDqO/258nZXol
OAeoZZ33PPg9jWCfKE0k893zk31nUc4XfdXcWKN8+hRa/SFTGGZ1f981O3w2
TDpcQrJfF32pJfmFdtNn6ZfabWWVdZD/gFXW1oLzdoPaQas6DguIA18t9TRg
CDdJYeq9S5VgyGtQYjW8sZO3dBKNo1xNQa2hxqrrGnL0YEcaO6bDwnJ5IK1C
tWT12inpws63f4+sfZDv5jIG1sJFeCqk8NvtX399Yj8/+/XXnqafBOkmV5wx
HGSxaC2mJbJw+ux3iKrxGfVsQNcw2js8O6Mm+L/94eneW2RHoIvpFJHdewXA
mJpj3L+SPlitOC9hH6uy5cWoyG0pThBKvIjcXWhv5/fhMnnTJhRSjjiFbj2l
oGpLvSjQI7Z1ncalEs/xEnreeuGxIDMI7Y5QP/QgLMgrVMtd6aTS6Ey1piV6
w+GqW9gxriQj30gS+rTxxlt1uG6sCnTnTOz2YrCaik8fi0rc8Epx7zBdVqoN
Fl+MntSiQAqkgJpESvpZQJjItoG91hoyTgOEbXIDp4Y6p4zqPwiKO75Xrdgz
yWaiytSI4Dj9RDH2MfDTal7hMxo+WkEPeqBfdyCF1g4sABjzJUCHVHhjYhWq
2oZuSOPcqqEZkLgOijA7rLDj/vAVo8JEW3pjfbC8uLrimKZUGzuV+Bz7RIKN
QTvJerm6Fop2hU8C763Si0s6gics7xoOVuzJtXTjIUkEH13fcp82P0deNV4b
8UrBwjeGOrfjrJwuh+jVwmnQmDPLCivGW1uKhUOGfKGZRm071G8pPAhu1jZh
faXkLpOslELNwdyyr9dsDo2m+oOI4g9zp3bTeCEXo9BFIwfJyDQy+OLve8nx
3uikX9X3EDWiGjiFSCSRH6Bqk0yf5NBdGJ7IkEAaMSzGYXaZx3EvXdjVF1Xi
5urN8U6qehoG9k6idXuG6VaCgN/K3Cp/uuwfFBVrCM7uTkSC4Sqy8HZamImy
KgJcSfNGHusRjldeTgyp44ucx6+5SuiFKz0uZOh+f6O3Q6vz+uUeI32PK8u4
QHdIaxn2uudyLKb3ypIieoxWg0duE/rNpgTtCTH8g2rvqEVgXN6tSaYHjt/h
A4e3WS3IG1mphpaIiHBzzsvner+X2U3ON2FE4LKrLDNyWEmD6sUCNOAE0MPM
Va1DbhJOP24hMDDeFPZcVJz7c2ZHv4Nstf5llrJ8X7mUuzu0Wm0JTuL4beze
Han/vXkRkFuzeOQ4bPLPCWrJGXbePcJbXM5ke3ZnL9QK4qPvHDxS/5VFmhFS
Yngm91oZXiRj2gUTpLa4ZUtvuhRddP0//rf/K0HtFB62GVBjLaRMhnbcQbve
cQGNpygdxFZsqnezdiyzWJ5LvmipR8NRa8i+oOuaMmX1nrSKE2B0Iekmio1I
VKkOBZEZ+l/ZqUhOi2lmrNHz8FH29bOUcmeX5VgvwmjQlSEN0U6BiSFM8fmC
ZlOG608ftZxpjXI+iA+Ij9VOBwYq7TPxFhRXNVmhWT+fAYTAQYuVpHQ+eVFh
xcAVoRHv3qa2uHf4ZG/fneAGedDlMp9O3KPF3RzmtCFyKnmGOT4Zr8G9D+nV
bGzgxnUOEJ94YwedJymg22K0hQjSxnR6vxxHxVpk24q1JLbDrquBxpzl8yIK
JxfCd++cqsFH3QoC+6nVN90IWJwdcOncTJ6kHRFYSDsm8twzir7Sf4stonWr
5smQ5a7sClApk2ozRs5IzSm4IUC4Z5RY6pp3nFhOJGsRiyg2ajI8miDe8pyl
gzPXIHS6ScvJHXswuUoBdSwcjlQfg+ubOh/uOLq5/Jq5De5WCx9qTh+3JSYm
jb1YexO4jdrBpBVXCuWBW7Dr1JRgw7iNERzSytXLCg5cWsV0DVHtL/Ezr+Un
MxXe9gzr71rmWTJ1WHW8A6NMqyAJ9PsfR13aRC7lT1GemjIHuv4nAy42ABk4
f8KukUoaQXgMzPKV5Q26QE2QN6jXGONJHJd/MGcBLkMPHzV0ozQUzDHhfLVS
g9oxMrocrJ5L/+oafwXSuQLTBRDQJjBSkNXJyY+HMRlWz23Cvugl8KoV5UfO
Obe9xfBpMrm5Gl+fo358LfFC8K0RkznWOjCbZoPt+Lqd7BR+7/wogW8pyIJj
rF57gaAogjOXigVNvxC2u2q1UtH5IUdNZ42nBrvFTm64Qc2jUi6Feky+kM+v
ytRhYBsUMddKVOUwtV5Chz1xe1NsCo5MVt5W7St+pP1qF0LxDqd8d9WvErRt
+ZMC0fNkqw4Q07QeeoHaDpaYXsC2aggUunxkc1c3+cJnZccO67TiAuxS0nCW
zS4xEw5mIPPuPOXPBi+08HGbl0zXSu6Adeuj9LktqjZuG7pTFdatwGBLGmSP
26VG89k1EpMidvy6dS3qY36rYfCxU/6tafItJIFttI0LdLdUuHDYXXdEATxC
wPvs5H0vOTs46CoXFF9h7q/j67JYLmhZaDiXxSctHjX6kifx/kE/4pp5FkGN
uHpw8hSSE9qmaVLTtUfbVxjtSAWnzVPes+AmW2MQOgT8UWl4T9KgkKW7enbX
aLo+a8cTBRjyyN79OqjglXE9DB5fAz4t86eJgRxfUL6TYE4UehBOjbHTi0Qv
yp4XoTMpaqDK3dU0y+q4zIn7SmseY1iRekXzYs+uquyRU7YIwCm+0lvW7tJU
+kDR6xsu1CFdCv3hJak2XsvXfhcwfarmG71VSeSk3GWmZSQSYWHn2RzdkyqG
05uOP1Y7bLFPgM9IS6Vx56Ko+IhqxQZeZ8Qr/5UUvFvhVR8zayEpzhYani9F
/Fi9reSf/kyGpN12KLERXaA8Jhzw5jzYNcVWHyvf/HlXtrt9wBFt1kRw3jsJ
B8GqGpRVATY2bEHEJdmmgFrhR0leCpGe2IyHJ4jFAJLf00tpzNedMQH5HRpw
bXNLJNCQLNyvb0h8XN8gFh5uZ8G/TNNPGFvlxir0naoKZUIdQWJe7Awr7mMK
gHOQvcvnH9PrrLXMqfqKLpwfRICtv9DssbfX2AkbwkETItKmg9xRCorlRMd5
1WNQZvyM18KkAw1Gnaxpjgua2fv9ds1ByW2QWGM+fNXPOYiMBmhhDIWm17vR
Ashnff9UF2SXU+BddFtJN6Dpx/4RGjNpWpOcC93vuvbslECl0u/Tzi3m0S0k
uAo6G/m8fzWlDVEHc2npdQAIA7ovZFjs38wm/csl3Mnw3k40B0S3lHIgh9tJ
+675VWsGKOY80w4BPy9g9RY4RMdSp7vqqrF4Ff1o5sDgwZgyC+cmCtZOUmbs
oh4dSqcku+IkgROtr2w8eXSkaf9nKwTQTrEngaZoqChpE5uNhm5oPN7qgWrC
2ZZVI8aCuWKvrupi0h+luuK3TadgInNoTS9eoGxmZ58e7A6ifEdTiqq4HwFx
G8da0pyTXawXLj9LBH2V2bCCmFJ9QxJ3UeaCQpMMW+NO6LXUqIR6OKlWcd4R
bCWq7pVsjudXmzuolvXLxxpFsv5pFewqPYL/+ZwMuHPfq273nzeTXxOtjtXE
PPXCZXD1odIoeIAK1QFxzcVNPbvgQp9LxpWnnIUBxHgvhO+L1uPHbemqcscB
DjSg0Vw4SBKLFh/36hlJXCXiQ6ZSChbDpuS6vJCUFf4nwP0IeohsSc6nOREK
gZgvL8qXlvw5drD91hITDJtdqTLB1FfXIVKqsrPN+IADZyo4G3FjY58Jg4Nb
q7U8MQ0RhVIF3UEKGvedTY+JsU9iZ1i5ESPuH7pve/rinRDVEGQ2Kt9SazWC
i922YhZ1VE65t1J/1sF7PbcFO9RHbogt2F4UK7YkK/MyL6Aw7Tra6L5XfYNa
urtRLgTKj8QToLciDZ8Jy+sbX5nVxh6Woxhs7/pKr0Im2rMS0D0JUphbMdRH
d9kLpxUIHHzHWLoqzaoCC9VUamhENC2rtNMxJiwi5gxqf0SOJUY56AS1lAyx
O1LWSvGaQbWRJix7ZMGOgPWhdd14r58i7orlgNVMnTkwwAlgQhoB1OodqmVV
GaMSPDQlKhRWNaAaHA69Mvoz0cAEPW6NfqBGEbthEzewqdWs4V/7lGxc9IGF
m5bjm7zOpFbPciHX10Tlo3m9Vk1itVfigRkXK/QSXHC85A+SsgbTCUIgJG8G
GGW12sWJK4kZhjxCHz0PK8sA6rlpISoj8fbXAO2WnJhjQbmGp0wyExkRmY93
TbhY+UH6II1ipjTnSRhcED5WFxpDl4JitypIeu6GDeARIuEVTax8HM2M6Wop
kHxa2DZDXhe3LQSnzlBjXWFrW14NTuLe8ejgfEQnejsZiSU+ck5g8VjFoi1N
zkJfw0gqlXH3xDx5Nngqm+/VN6yaoJHvj4YnuiNfPX8ZdFqKDrl0RBPKStLA
MmeCOoTzOrbhMDRGURt0n10S+Ew4Nheh2Nr6gYbpHLvUg+QJj1w79fTlM9cp
mYW+EKdIC5Iu0sZmObcEW4maUlsJfF/Uuv74LHSIBX5I+5hnNvYQ2pitT3c6
tw8tL9T7mq08i3RFfloVRgnqvhs1c02qMAer0dxrH+CLU7jsDjf2iF9SnJrk
Hc5BhcKVDJOVCntGOiyIZAu+z9OyBKKEOgVw4z/+Qf/rvl8u5xzPy+iGmxZa
tokJQ/viYIHfeTl3BRX5E1P5eJDtLqEsAV5R803S5hDry81WZh5IYvhcMjs4
wmPkGhoNlMUG2PMf/6D/dR1HCm4/JHuy616/fc3aOJkjgvyfmw3LEegwwgbZ
fC1JHrC+MCxUKJrzF9YNRClN7JMsME4O37w5oN1IP5xis8svXIfHIYPTapxA
vySmjZtXLcrOMDXh8QxcFnwfczkGqUHLpcS1G4f7bhc+SWb0H5s2py1EMrTR
C5QscHmK/ICaXAWbX8sgc4zLEcCVImf/PRy6unU84U9beqd2SGNlLH5486ED
u2GVQkDy+dZ3OsJewdAq1X5XzVaXIUVvSyH1lxA6eoQqu9g4+/mr5HPwK4Us
f27mHw63PS9bYEUYx27NcX8BBM7vvcNtoJBivBzxTeK1kGsSFxFWYMyOdZp0
ffP5CjlTJTTajLsU1BeOr/qzOsjZSP4peam+LivKMnzRSiGm9OLCJKauPTNl
CyvHMnyJ3PBVjHiIXGeiTY4atHlcS3dzWJVkV0nb2AT1U6/C/PEqcVTFQXxM
lXUfd9VXvwHsPAxyKumF/k6mfMl1WhoYoxK1WMWnnM99XNkq5iLHB6OumY5g
oERjQ13inJmZ9n/uHx2cJZ2jrGb11m2Abi/BH08PRsc/ne4dIF8YGVMgUS2V
QUkf2UMCw2n4AB8i++vxu3c/7R8efS//PByNfsLDUEdLZJ6BDFMiK/LAyfD0
7HD4zj1IxlDeZ0Cuf1KPAzuKk9GyvMIx5kQIWprr1J0QfeKzGzMY2vwzvGRm
KQWI//AMxeepcbZOhjj31xm3q1MZT1s0Q59ZaxCbKORgd2lQOGmfvYnVS17x
DjnluimQNZoaNPSfk2R8rQXiXFxhpYVu2CS3N1pekiVRL3UOHuqvujwdH1uz
pRoJZa4/brMYu4Fik3j7/ymoZ9BsZ4/9bIKHUDwpndFl5TvY2BYhHyQpvjdF
GXfvRU9b9iy8iO9wrep1a4Xfi6ei74n+uUpPs7sqTsVTZftYm3UdHMFRhLmZ
5lcZRF21GzmNIypa/wVZcvMOwt1I12DTD6mldJojcevmc/tbcxBxNX4OFLjg
i9qwVSoya+Rz3L7jrITu+DnULHlXcBwncNI33oaTo7+djDPhxirmKzGWz6HK
y00GsWZ/5DqB2AxWAjv+7eh934m+WLyuNL7HSYMkSfPFcpoGp0LO12nbfbWy
Jejo0g1ZSRGF8HVMNj1GD+x6St3GgrP3cdaugEiyFN0KUpYzcWU5e3pIJAC5
BGBD1GcmjLAD3hXyDc4OXEtVGCvjp6pZmy43IVFV73rMUeT89W6nRCv0cUV4
moXdBFuobztQ43qYi6pVDO4yGRGo4a/6Wtp6VzNhEolfB4eNoVh6EHebJ1Fj
G8boF0CQBWbmt2a3nRzjhGs2IozTVNiC4IHmIjdPWCOiEOepSZJvwOCk5BgO
eu9Iy7QGMH+MS4OIk9WC2WuyWV3Om4MasLVwfVMbyTt0mELMJivXbaWTPEqe
HmINoplPKQVQ8xC1U9/E6KXrZT5Jle/qnmFCykiIHr/LL0vcwsNbUp3U/pFo
RLvpiAEELt7ACBXVfplPEddax1oxIGVOUER5FbvNDL45VgcLu61ODjmoI33j
9HEDEi2y+Wj0jvT+7QH9f5I6ipneSS7o98qlcS55h+e2Bp3uhWAIvuPbiRt4
3AvQdqZwY3dO6SdwPe050b+z84WXvy/4M9TAwL/F3pqBMIz8yC++b753hCSV
X/ir785GXW2C1mVE0jGrB9lDL5/c1zfM3/l8QJdAOD9VNR3QkI+FXuMLff+B
Jh+z/Nw3AVVxXrEJ6rBRJOJ+2P9RgLQV9dRtHCwh/gGZCE4ZTPbB/Jr2D9Kb
j6cwo9VvIAXuMg3gTST6NBETBhYrRBXinTCRpEkJPQefWiViEzADO2kRNonO
mBHCOXugKTgErBdXgND0/+VCNBd38lmv5bg+3xPyF+chtDznOhMPLaQeF7RX
woWCC7JIgo6yvtH55KRgx4zPiaAcTVZLgf0pRcgo6cKMbEfD/UB969fWDgB7
8F2LEfLpPumkyd7+EaM1332TsA/hMp1CWJT8S6weBnOX3jPRH/faUIBmdCgd
K829AlusExriou8YsnJFKgpoiE7jNeqDqR+AROVdkUgy23XOucGcdNeMG6tc
5k9YLpN8T5NMKoO/ep2342J7q9Zlz3DLamL2HHPC6p2CiCtik6tMUILPVeHu
AIr9gOHRAHt2c8jwJQipU0EKAoOIuP+aDw4XQAhXKwMcZwRZ8/MutFsOCaE1
i8UTrkuiH9+QJL/TrO90Cd7XcRejSZZsfIiBxkiSzoxVrDJRpaE/A6gCt/Y4
ZTdQ10eb9ZX1KxYyUvCHkUutbwV37iDo2QzDtOt1Tf6Ffr55QpXJhU+lUCO1
fdexsEJ+cDOM7cET0oOgU3kV6hLWRc6v63u0S0BJEfC9hGNnVK2eHwf/yNJ5
Fa831CScjYgjMKB3sb4mgKAAVJJLRomLbsAksVio2xwjOYwkMbaZhCjQL+D7
YRFaukkNd6YiqwaJb+JZt1mIaHXb8sSqj4HmCoqdL6UzVkge5GJGtvaViSTX
X4hPf9cm73Mrwy3JSOai29hoypQ6D1ljxVnawo+2ylcyCL83c9/rgJPgyfNe
8l9+OtwT0RDSrJWuKz6S9owUWYOJiAbVDUK02AYNOoVdnTpXxctyC1v3FKc4
k2gBSlkk8fgmYoWxPNCxKtqs6YmfQ4UJ+uCOgCR/C25qJY04Lopg0iv1DmMt
wiAnKRUwm9ZUSd0sqRsfqVWoPj5VRb4pk3O9QyvZMz4J1S2o7owPgqNI9ovk
g1nfh1VyRF0Ymq5Je76YZSGJgmZnPUBvxsrp+72TPqycvpB3dQIWLERNq57y
UR2e7JGiRAvB5gfmPyAHayVmCbiFGFrBbaqBRJLZ6+iSahARisVM4wAAw23b
ljAKvW8Uyu1gChTEYSWGE84LEEuVRT5EI1004h3s60UTR33Eshboom85JoZD
kFDULCmMGm7fmICEw06ZpCCrjRkkJbv26QzEdGMSLnAwIk+J4ejh2kjmJLsb
yQsMBXyIQY71FeNnexzVnJXBCeNtALGVpeznlYKhkh2sjpPn3SgZQ5gVXbVx
l+rDmJvI8BokXBUsnCuDIDq1dXmp1AJ8xKxEUZhjSTY9tjusOESYa7fnq0V6
Bw9Mr10Z8KktTt0PdXRlh3DkEgE/uN/ud8USXAmZbZq6EKp7YYO8lVAQm9iF
/hH7TLiyr8w1X62ewc6XeV9CaGItr4eHnyHeMHsap5WaXtleyZ+TzbV8gJso
UKbVRx37kus7cyiztuaPqporCgcSzMwquyHd3CTuSq0W/lXgfW+U8fhenQjt
GULKPKWXvzUBEuARL4Ih6spAZ4f1ybh/o+aRSlhzS8yDUGE+pyK5K9OF2DJ0
QbC/Irx/YaRYWNEME+5M4REKCsbQTBHrYN4sVaKYwqZSeJNNFxgtOqhGudzi
bIcbZI4O9vjL8UTBAkk0UuAW337zHDSqgsfRZAmuZuUQ9jDa6Dg2cg+ZxDvw
82j4a7cN3qsZ0WgVPFMzo9XncpHmVMRfLZqG+C3Jl5YQnKUPJrfLKaJ7PlmT
5o+Ps/IweISWg58nw+vrks3jSU/k0TRLP1ZeHZhB8rhAsraX0IPYIB6QraPi
JHOV4BrenoFtEcCT5TRVUUhKGYi3SilSOlqtoLWQpTPrRjDnruKoxsrZ/eGK
F1uOqTGwBmmXELUzRG4Zlyr4ByUE7/nQu3wkm+MfFVe5UufbyiDNLbCosuWk
mN/PEM9brQNmqVZxUjBTWS0CpMvIE9REXxU2gFaOiKQjACetINFiS62kdAfE
6NsDsRjSaVWsm0vMeoBNZvqUsANC7sy2bEtNoiogYgEITbYOB0I8dFftupCh
GjygWg+DsRyFpPUjTgw/V1hZkVFEJ6ItVU02Z34Nc+l/Y/lNMLptqUITrLHF
OOgk7P/hKgelCwQTY1guCT6ZdrycBwvJypNE9aHkOXR4BGe/0vGI986nHgR7
008+E4vES+w4hc0drkgE2YFoRfriTd+Jg34GSFHmLVMQjIu7BfhYIfuNOiPo
FN7JGvJb2cTe6AVBw9xKE+rjRnjgkDnGreS4lKlTN8W0tQgyhyo4KIT7yc4p
JytytcRwyrmPLnnQ3TkVOnlhAZpz+n2lNJquEIZKMj3+/rZyUZ3Le2FECPU9
0Z4kJfeuAXhydRRZ2qbXzHzkf+mLeTLUoEa8Jg/G5kvd+Vmy+hac5uWbgr0c
oU/GXEdJywW56FVQ9dGhN7in74rra2hE1L93IIgNoPx6lR/uV5YduiIAPWea
RGb6eu8wtQhvdVWt+5qBxt/ciw6THf9c6JH2Ioing56I4/gy4923yu/ObAVz
RruXuJlNyMj3bvIpqYziivABUcwXQtyyQxxO2qceMY3h9VJIoiI/dueGtIP6
hnQHErzZZGkhFNL8SOsBGaSq3qROs3FveDltr2CYrKgvxeXU8BpSWBio6lad
xqXde3dmlBrOb+rFZ3lnisE2V1CDhNTjqi3rALXayYCAK7vDAPneSmWOXsga
pMW+o8LbqGQYFn/s+fo4uiGrlRLrvqEm01NXzSWu2B1UBJGUWCP/4LG7jNbw
nI6ptXQh7NjiXRLDhnmMoUbQiKFZb7rXe0jNBD07z6+YoDoncoAEOCjmYl79
4nLWU+QU1L4bYibltHNqNmIz7oy60nQHB7uQMZ5TR0TmSA4ljVO56cJ9YF0c
hdalLxKipb+2NG389fazMDb4YvCq693boO4gTV/A4MIE6alWb1CqBqJ8yscL
wkNqxm9Z+ZYqGUr1Oto1SxoCU0di49C2Wgbp7it9+Lars2QcQbRiAAQzXwhL
OK4VX5ThNsRUmkMW85FXcGwWfGdwIEiUASW5CXY3M0LaBrgsCpLOc/5Az/9a
AvDhfpbXUKiQe6pZtXzd005gz0I6/si53HblSuxBBGegHwq6p/L283Luud+i
ZAvXZwFsz++1Qw6EwXcERwx5rk/prsruAvfEi8FrUcwYam17Inrgm65E1Z3i
ZMh9JLnN+B5JqjF4x/GZg09g5HAfEjqloDVUJ/awUl1MMiTBKDCPHSC2drry
efVRfEj9IJuWkwssLqB2eBR0d8Wl6F8LumjgM28/BzhGxpheclqnhty4+B2G
oXh9Y1PU20zyb9oGoDsCO5WjdkaQSrfW5D6OqouF3aCU1e+p9gcPEad2MNCY
rU/dC3qlyeaVnNv9TLRkEL7JiuDf/eLqSrR6k5GllPHiCCOgN5CP4I6HSK0j
AXetIQjYjTdQ/Ocuj3v/IBKlmh+d8BH/8H2ijpPcqiOu9s07MVb+RhfM/kHF
jMYQoMqA15R9FgMWwOgKqYfeg2HUxt+HZDSzl1gRDPHucDqz6LBRu8JGmcsh
X90TPasm3dcFjPdGJ9gYh6PjJ4cHe9gFR4fGyWlbI5WkCVwjUfqWcO02Tsxj
NxHvOO/05BoPYSq9uDjyWukwL1HyAbcy3bzLuY4LVk92SXfjtRYQjdOtrCLk
WDDA6IzFsIRwKhyP29yrxcEE73Co+qRUXxWPuVMjS6zOgaSkNheIL9R09RXJ
4BR3lsWA0T8VIsuFxJf1kmDyC0N/zPu+7jxNrks3U2GEzsSzKXUwfD7mZCmI
pUyObvD6vc1a4MHlEaydF6w2K6Nm281IB6nRhzdFGZ4RcdhSo0LSwWTXLp1Q
sCN6ccI/2IuqffZoQHzR7fE/2uurdEHE7j1brP255AwLT4meNGZPuJfKzD6Q
zi7z6yVHylRRb/gBeQSWuOvDapK+azQkxuMt2QaraxFwGqgPVii8fOUQhmNp
Riz9jKycYFxWjthdxk0pozlyz58mk/S+8qRnJCVv0krp4Gn5a+EQgJpauWMq
/ir2kYWt90zOuk6M2Zcwd6AF4TgWLKO4tiHLReB+AGHXj5y88NPpYTwfGxun
gUoRiEW7WTW0uBk3EujBqrK9QhYYs8XjGyMEIz5p/TM6d3v+3EVQ8jYW+ZXi
UA9gzbmOEwIAzMgOFedzEllBvRA9Guhi7sUGfdmXWkE+QaMhTPF7wH+kut7j
ppfxQlrD0KbYNxJOr9OKX71+/lqnuK2MXxtC//P6GeQK8B45+URtrr7jsvjT
L3dco68tEzIolKB8byNOmwVLzkj/FhG8c4rg2kl9mTyiO+PHdyfIwQzyEZO9
D2e/qQ+8PcRJ6ycjzLB8/DSs/ezrhz87fsxng+E++J0NviL9zmsyq9XZbMEe
Vkt6DLbdro8FjCOvg9hgaDjlEt5FlTkgqTNBm8ndXyGmz+hjn5xw6D1GzdIG
TsbNGxY8ksocYiFwh/lWQz9Up5G+zg69YAdw5QwaBORbqJsIz4h792tXFpgr
VwfFojrQ3nqmzvWS4w/D0UkvGR7unQxFhB8scVmnuEhnWkyqp/Ze375YijaV
yeWYVw1vk/qu/HBJefP21QvS3WumkVd+1Alr1K5sAzoRpL0ntelAntURt3Mx
Z5uYZyLgMkD7DAKa9+euCcMxG5DEFbTCY9EGyytLY7SVFD/UTmO7BJ4rb9Zx
iNnI2EGUYXpmelvkam9L/F+L8PAB8cEuAY3Cp5bLxzmgrn6sniu0e7WydVRh
V03Qr5Jsc+z3YOt5GoFVMfUGPoojfNK53Nb67GQ4BRPTpH7D0/0Or+nmF7+w
yRWivStMx5osKwVsS7wjJucYsC9PSz7jyy2+9oBcH6wYbh20GPLOOjdTp+Hd
wdsRw+SZSh+1wzAKwLODeKAjDL34t7T/97/hf572vz3/29aFEND52xAvko5b
KV4nt5lsQvCZ6E5ON2ZOLptKqBXtNkVbsekmbSqFA17kF1Y0na2tjY1DfJs+
FCkFfIVjfL/DFQ7rFUf1nIY156uixlaulBd0kQnlAagek017eFNcupwNr5qJ
rxthf2GfTvNC0eq9GgBe89H5dRFxm7t4sVgfytOztFq2LR9oIdEJcuzyqC47
vLWS8AEsgOJz8tBcdPJu9SLWosXt7DyP+GSc8K3ttH+kheXngfbxIDT5tLzM
a84EYR/jassBbUlkwP0+IqbRaItYERVWxUpaSeKY2kCqr8TFlaV8aCBIXv+x
ggT9/h0EiTMQ+ZGf2YwdMTsSnvlhdHzUl3/iNriWWgmlvat/UPJ1Px1fV2IQ
f0Hi/Gfky+9kInDpdH5T8j/k8DIkhe4Oh6/SlR5LFLJ1/1vx9ZXG5A/wll0+
urGgfLtkzzNZTmqbuy8BinTR/jbKvdNfvkPw0EUHUXJHczqE+9PKjrd93hWK
54x0owDSConurzG/aHtXuMr8ypww90Souz5mXpwoGPrIm5a+/R21jjWNr0oG
hXa0axwtVTMep3UMXvz/RO/w504Vj6ByiL5n1QVneM95yu6KIHRa2dscejEa
5pJTdiRALQhUoQmz52gjgjU26UQVDJMnrJI3fzfLP2WT7h8gglpVnGDUv1Ug
tYmncCznJGbHH5GHzkXCDZbBv818CVUSxBhxUi65Kpr63uJZWdAKPLlK8yk1
FP+lXbYt6wJg88k5aU0sFGilSCuYQesYQ5USFvROiM27l9+zvcdsWWMyi9Lp
/d/5NxELvfAsF2XVfVx/bpZ0WZ2XHIRDb97i330r5aKnl+xazkNmHLI8K3Jl
dZO0fmQ6nZ1rxKUoZcZdnQTqPe3I2gpETGnfLFExRApZOr8vOxptnR794Zv7
yzJn9Yms6EvLxMM5oaOD9HBgDfXYME0zPcmbvL255dzBsdHm+6DAD5wPqKEg
5NXrWzG6PYdSD9OVjD5GSFegnaJ0oOhLEt13yGF17ypOTNukiZINy4EAK+ad
jmfZuXkDzm+3L7qsloot7PADgT26LxHrwJH/+9wHq+223AUSlu6zDiu1y/E7
kvJa3jsghGFIUhqzut26crvqGnHgD87cvGJ6mT/yVsCw1t8Kw/6//g3/85+w
RtF1ZdcSysnfVw4nHWSTBATv4Tp3WUrviV0RSek1shin5WR4/v5wNDo8+v5C
iXx4QlsKVvlAjZZstPcP/gL2rH0Wk231RhewJLm2lmhg+trh0c/Dd4f756PD
79tf9WQJk1xKbmgxQmvhu8Mj8Oucvxkevlv3fccMw4BWh0CSAKdYa13XvmQi
ug4yocn5T0c/Hh1/OLrwbFKaN6cqUFi2W1PpJDOs5NvIWntzOnx/8OH49Mew
wbO2pEkAg2PPJkIw6z+q9mffu62YvGWgnz5+d7j31/OzQxrKu+MP4Swx3wyS
VVC+ULxhkvrH2PXlLGrgzbvh9+ffvTve+1Gmeogo8pgL/LKzBSYvj4CL5K1J
B40aPD0YvT06GI3WbpxiOvEgBNc5T6YjnNuNRm2WaVe/H57tvf0N04xiZ3Cb
WubAsm7MesezS7EI62qfHlqE/ajOk/Xz8Gjv+P3Ju4OzgwtXwEjHB3pjunTE
t5sGvQ1cmS4ZFcideKHDlj/HhMvIGnLfmKVTHadeQZ76lKsEnNMmuHDhfU35
aUwYcMMKYXVeEOC9E61aK7W3hPyLyQgCtC0DUQqP8WDegFQfXzdtbctr05eG
W8cShnWKduMJjmfs/cHZ2+P9aMO0bpYWGyevHGGQ/0Drs95LJMRK+P7op+9+
ONg7i77ckjfh4iYinsRS0PtAxsF10yM57ChDW4WvPL/3dnh0dPAuHrjapCsM
DasCUhoZ7R2fHJz/fHj8bgje+QvmSMp8gMCmx2JdzBmos39yztzodhOonr1S
WVPou9vugIOj0+N370S2Hfxl7+Bgf801gCVZqRSaV1Y+lk96rRv/AjmcWaa0
7k2CJuNu6gSZF88Yb+O1nzAj/P8p7mqb2jaC8Hd+hcafYMbyCwFCzTAdQwmh
U1ISmqSl0wlCFpgEbI8lk3hK/ntvn929F1k2hED6gYkj2ae7073s7u3zPFxd
jS7bMcpAXMlf9swfoXi4pSOzat4iTy7Go7VGBq5FH6pl55mLfvrH4xiKfokV
JqIf7RAsEzBeZsFezBQLA9tCYRw6+UcFGA/vsg0RNOB/jYUY3y/MiGUKRKa0
4TKTsfkz3YEfd/nAmB1JDh9cpgEmmJNhCWjEA5PGMHMlIa3pCfz9wwpLMgoq
+u0ef4XPf9SN30jEDDwn8RFbmHnHaUHwhWo5bzfXTO0GU49zqtI9NI/bha+J
VFfvYa6cxc+TSt3rYYcTEt7l4GTR53SgLA9B4vMVtu9+hAsRaq69FvM4scFS
qfef5mUb1SamfVaZVI13VVp+OEvHcTw7g1ZV1nFcbTztKiDVul/ocPEaEHqJ
pZ4gnsSKBnMyoE+TQ0a1eJc/U9lTc4cCgE8w8fWVlOf+3PpUrwN3LgWLVgUF
tJ2iFgNg50qdBLhSF3Gm6tl3PRxQlC2mnFcxLmhjV3UBSdegXFhpSF3JJ/iM
VRo6/wFDQEYnHNzynwBspF8GUIk2V9ZUe0sFnBSt5c7XbvFuFx0NVuZrPtIJ
YWXZd0x8dyZQRedARwCytQesEk+7i+Ph3zd9++IVe8QnxLU4KeQNC9q+x+eS
ukxX7N7LIk4pDASlXfvtAMSeuqdqNgPm8tn4MjtHCk7i4qKf+1PJLZ0G7kcV
t0SJj0PwE3ig37anMB+4seVF5A9vO7uThHg+JTGftl3lsfITnArj6Az3mcu4
FALFkNrkVkhhK6b3YDjIqNhXw7JDtKV0O8c4u+T3pUdevG3Pjyp70FxmpRPu
iAXsJbk66UXInUF+zVwyi9OVSkUXGYRlX8FsTOfDENhOpDJAbQZZccZx9/wK
zzV6PNeiVOi3eReKF5b1d9asMjacRP58oHrr//QqviP/yfMeZRTwcgQuaXZW
6efXyReE9CTml0+wYnvq6uRP/Cgnwq/cA3yImXWAvfjbsrPesfKiynpXwcME
RMwWbfHKlXwbLUi8FebkUwW4IxSqYPeFj5aB6CJDW066Wx9tRc1vPf3OxXUh
8HCIq+Ac/BIlClsbuYgeXJboO50y8U9rpLpAGzZLtJj/24xQ4RLxWFZUVOp6
SLIIsoJ4cCckNAMYBcmtxZw1SIRQ58GRCYcMCEkB9KdL501EGW+pXxSjvNNs
Xhgra3LWMDt1E5TSwpKlGJl8ztVinGVNItJq2lo2kQyFWiKLm/Xyugjr0+yj
HOYbJKHmrvLCVF/Beml2Jiwd18n4E50R2+MNsT49BLW7UubIcXc0485YxSKY
VxfNFH7HxEDhL5NP3GvUG7H0RtBbzJC7gA4IcasRHbCbiWHGiZnVwNbS0N7l
QDJ4lRWsbwqdwRIRnQTzfKTeL0jqapCVz5AdakMPat1+ZhZxFSJhmqRpUCAe
YfOz82jdoiPbrXo0uprMMpiG1gYzMJZZsd12+jIZm1dmTEpOmT/67e1xtQJo
QLBSVjO0bA++2o5HV9SQ4l9kPdUFF7nAqHsBVgl3hl0SG4T40gD5VdaKgUr4
FahRJUWKGj4vgMlycMQsHb0mk8DG/97vR++ywSQjRLz5fEOfCfB1p9KYr08G
0iMbMwzFwgTfqsJkrInUQbiWieyOYFKnKivB6K4JshtwB0NCFbmt4A8hzyCp
UreWPVMPctCi7rzB3IUzYxbvqpfUzYQ/kUG9qDxarvR06BNQQEUkNY7KH3e7
+7EZhNTuneELGu2EzDM9KPpgFEW9Xw9tiYTysqY2cnViJfZi5lFS/oodQlkg
+PnKVvT+4PB4z/3amSZxkDknv2C0i6oqxZZlX1h4VvjQ5sApG9LhiKAsIhXL
oyLOzfuiBUPFwWeU8fjQrMiu4ZkZu0cl7h6qwFfXQZkC1kEry8U4ITYvVki3
kpgs0YHRMlbs8Rypu6qBwGHjnD74jh4LCHqKhCLa57J+hNe+MHbxpFApnc/Z
FaWR9ZRcICW0w0AmGijKxEEJUB6k65xDMgvgS0/FUZWpRxX8B+6wUq4KKUu4
ONJImSXVA9p1IgqarAtvWbqExygJikg0Xz3kBWR1q+6vv7+JbvLo8OAVfWCw
s4WJVz0L1K3KP5oquyTllzFZy54w58FFYK1I88KSKQ3jHGt58I1ptGwBTHFX
BsSKL+e7FEU1mSEk6mv+ay74R62k8Ks7dW942TAOWbPdamy0VjebBFJqdA8a
7VYrbtfq/GM9wTU/fCaXSge15s7ftky+F39pCClgrR6V703tvX/qWkE5iP9g
LMLhoJebIjc31lotvU/oE9ueyOEVgDMwN8y8zbO63g1QCHoXN78u0Z/IFQe9
Ww4dy0so96156dSDrcYq+oe6wu9RbqFrO33FWFf0FVg9HUrOio39PGpSprR6
28OxlJaQAnP7+dr6equ1yc2vGWNPL24+X5WLH4tLKnSUfGi1X77786+T9uqz
7s7u2vrGL3svuLCHv3W8c33fNaz9bjB9MrPFtscOEpD2+09JRpcNaqyzA/Oq
JlP7BjdoynjYq9HrwUM5Gdgbwo8wAuzdWRCJ+YqxR70xgkqccVOlChztoKoy
ox0xemkbcIVu9fb7o3S6Q3/9g/1+P13tX53s7kzOVtc/nrze3tYfpMUX+vp1
OtIrycR1a2esBx48VoZjMsoLCLPVgiEcdVOy0a+yHpAF+dK/HVZyy3rbNbS6
9pXVQXjxRA7MJ+H2JxpRb6Wn9e88y3q0AVLOuzpQYGiI0mkqRICy+OfR2djM
ELhb4AsGoIfS3IWoHmu2WuMIUoLeHTDq3O6/jaX/AJg5cRqnfgEA

-->

</rfc>

