<?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.39 (Ruby 4.0.6) -->


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

]>


<rfc ipr="trust200902" docName="draft-kondoju-evc-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="External Verifier Contract">An External Verifier Contract for Agent Authorization Decisions</title>

    <author initials="V. P." surname="Kondoju" fullname="Viswanadha Pratap Kondoju">
      <organization>Bolyra</organization>
      <address>
        <email>viswa@bolyra.ai</email>
      </address>
    </author>

    <date year="2026" month="September" day="08"/>

    <area>Security</area>
    <workgroup>Individual Submission</workgroup>
    <keyword>agent</keyword> <keyword>authorization</keyword> <keyword>verifier</keyword> <keyword>zero-knowledge</keyword> <keyword>selective-disclosure</keyword>

    <abstract>


<?line 53?>

<t>This document specifies the External Verifier Contract (EVC): a small, testable,
proof-system-agnostic boundary between a host (the program about to take a
privileged action on an agent's behalf) and an external verifier (a subprocess
that renders an allow/deny verdict on an opaque proof bundle). The contract
governs only the transport and verdict envelope: how the host hands a single JSON
request to a verifier subprocess over stdin, how the verifier answers with exactly
one JSON verdict on stdout, and how the host interprets exit codes, timeouts, and
malformed output under a fail-closed rule. Three properties make the boundary
standardizable: (1) a single-shot subprocess transport with a closed JSON verdict
schema; (2) fail-closed host semantics that are independently testable by a
host-conformance suite; and (3) proof-system agnosticism, so the same envelope
carries classical-signature, zero-knowledge, and third-party verdicts,
distinguished only by an OPTIONAL self-description field. EVC is deliberately not a
governance framework, not a delegation model, and not a policy language. It is the
narrow decision boundary those larger systems all require at the point of
enforcement.</t>



    </abstract>



  </front>

  <middle>


<?line 72?>

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

<section anchor="problem"><name>Problem</name>

<t>Agent frameworks -- Model Context Protocol (MCP) hosts, orchestrators, and
gateways -- increasingly need to gate a privileged tool call on a single question:
is this agent actually authorized to take this action right now? Today each host
reimplements a bespoke check and couples itself to one proof format. There is no
interoperable, language-neutral boundary at which a host can ask an external
verifier -- one the host did not build -- for a decision.</t>

</section>
<section anchor="what-evc-standardizes"><name>What EVC Standardizes</name>

<t>EVC standardizes the transport and verdict envelope only. Specifically: how the
host hands a request to a verifier subprocess (one JSON object on stdin, then EOF),
how the verifier answers (exactly one JSON verdict on stdout), how exit codes and
timeouts are interpreted, and the fail-closed obligations that bind the host. The
proof bundle itself is opaque to the host: only a verifier vendor needs to
understand its internal structure. A host adopts the contract by learning four
steps (Section 3), not a proof format.</t>

</section>
<section anchor="what-evc-deliberately-excludes"><name>What EVC Deliberately Excludes</name>

<t>EVC does not define credential issuance, the internal proof format, policy
authoring, delegation semantics, revocation infrastructure, or any PKI. These
belong to the verifier vendor or to adjacent specifications. Keeping the boundary
this small is the design thesis: it is what makes the contract testable rather
than aspirational. Every normative obligation in this document is placed either on
the host or on a conforming verifier at the wire boundary, and nothing below it.</t>

</section>
<section anchor="why-interoperable-why-now"><name>Why Interoperable, Why Now</name>

<t>The contract is not tied to one runtime. Two independent reference hosts already
exist -- one in JavaScript ("spec/reference-host.js") and one in Rust
("spec/reference-host-rs/") -- demonstrating that the host obligations can be
implemented and tested in more than one language. The maintainer of a separate
MCP project (mcp_agent_mail_rust) built an off-by-default Ed25519
registration-proof gate designed to this contract's v1 boundary (issue #183
defines the corresponding spawnable-verifier slot shape); that gate exercises
the contract's request/verdict surface without depending on any Bolyra
component. The host obligations are mechanically testable by a conformance
suite (Section 8), so a host's fail-closed behavior is a checkable property
rather than an assertion. See also the Implementation Status section
(<xref target="impl-status"/>).</t>

</section>
<section anchor="positioning-versus-online-introspection-non-normative"><name>Positioning Versus Online Introspection (Non-Normative)</name>

<t>A verdict is produced offline from a self-contained bundle plus host-supplied
context and the host's wall-clock; there is no round-trip to an authorization
server. This is a deliberate contrast with, not a competitor to, OAuth 2.0 token
introspection <xref target="RFC7662"/>, which resolves a token's state through an online request
to an introspection endpoint. EVC and online introspection can coexist: a bundle
can carry a token that a classical-class verifier (Section 5) validates by
whatever means it chooses, including an out-of-band introspection call, but the
host↔verifier decision boundary itself is a single local subprocess exchange.</t>

</section>
</section>
<section anchor="conventions-and-requirements-language"><name>Conventions and Requirements Language</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>

<t>The wire representations in this document are JSON <xref target="RFC8259"/>.</t>

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

<dl>
  <dt>host:</dt>
  <dd>
    <t>The program about to take a privileged action on an agent's behalf. The host
spawns the verifier, supplies the request, and enforces the verdict fail-closed.</t>
  </dd>
  <dt>verifier:</dt>
  <dd>
    <t>A program the host spawns as a subprocess to decide whether a bundle authorizes a
privileged action. It reads one request on stdin and writes one verdict on
stdout.</t>
  </dd>
  <dt>bundle:</dt>
  <dd>
    <t>An opaque proof string carried in the request. It is opaque to the host: the host
MUST NOT inspect, rewrite, or normalize it. Only a verifier vendor understands its
internal structure.</t>
  </dd>
  <dt>verdict:</dt>
  <dd>
    <t>The single JSON object the verifier writes to stdout: an allow, an allow with
host-owned nonce consumption, or a deny with a code and message.</t>
  </dd>
  <dt>request:</dt>
  <dd>
    <t>The single JSON object the host writes to the verifier's stdin, describing the
privileged action it is about to authorize.</t>
  </dd>
  <dt>decision:</dt>
  <dd>
    <t>The host's enforced outcome (proceed or reject) after applying the verdict and all
fail-closed obligations.</t>
  </dd>
  <dt>proof-system class:</dt>
  <dd>
    <t>The cryptographic family a verifier implements, one of "classical", "zk", or
"external" (Section 5). Self-described by the OPTIONAL verdict field "kind".</t>
  </dd>
  <dt>host nonce mode / local nonce mode:</dt>
  <dd>
    <t>The two replay-protection modes (Section 7). In local mode the verifier owns the
durable nonce store; in host mode the verifier returns nonces for the host to
reserve.</t>
  </dd>
  <dt>reserve-before-act:</dt>
  <dd>
    <t>The host obligation, in host nonce mode, to durably reserve every returned nonce
with unique-insert semantics before performing the privileged action (Section 7).</t>
  </dd>
  <dt>Host-Under-Test (HUT):</dt>
  <dd>
    <t>A host driven by the conformance runner through the environment convention of
Section 8, so hosts in any language can be tested against the same fixtures.</t>
  </dd>
</dl>

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

<t>The host↔verifier boundary is a single-shot subprocess protocol of four steps:</t>

<t><list style="numbers" type="1">
  <t>The host spawns the verifier command.</t>
  <t>The host writes exactly one JSON request object to the verifier's stdin, then
closes (EOF) stdin.</t>
  <t>The verifier writes exactly one JSON verdict object to its stdout and exits.</t>
  <t>The host reads that one verdict and enforces it fail-closed (Section 6).</t>
</list></t>

<t>Language-neutral pseudocode for the host side:</t>

<figure><artwork><![CDATA[
child   = spawn(verifier_cmd, timeout = 10_000ms)
write(child.stdin, json(request)); close(child.stdin)
status, out, err = wait(child)                 // out = stdout, err = stderr

if status != 0:                               reject("non-zero exit")   // Sec 6
if timed_out(child):                          reject("timeout")         // Sec 6
verdict = parse_single_json_object(out)        // Sec 4; on any failure -> reject
if verdict is null:                            reject("unparseable stdout")

switch verdict.verdict:
  case "allow":
    for entry in (verdict.consume_nonces or []):        // Sec 7 host mode
      if not reserve_nonce_atomically(entry): reject("replay")   // reserve ALL
    proceed()
  case "deny":
    reject(verdict.code)                        // branch on Sec 4.2 registry
  default:
    reject("unknown verdict")
]]></artwork></figure>

<t>The contract is host-agnostic and language-agnostic: a host in any ecosystem MAY
implement or consume the contract without depending on any verifier's internals.</t>

<section anchor="trust-boundaries"><name>Trust Boundaries</name>

<t>The host trusts exactly two things: (a) the verifier command it configured -- which
binary and argument vector it spawned -- and (b) the trust configuration it supplied
to that verifier, such as trusted roots, a capability map, or a signer list. The
host does NOT trust the bundle, and it MUST NOT infer trust from any self-reported
field in the verdict, notably the "kind" self-description (Section 5).</t>

<t>The verifier trusts its configured roots and policy. "No roots configured" is never
"all roots trusted": a verifier that has no trust source configured MUST fail
closed rather than accept anything.</t>

</section>
<section anchor="time-source"><name>Time Source</name>

<t>The host owns the clock. The request field "now_unix" is host-supplied, and the
verifier MUST evaluate credential expiry against that value rather than its own
clock. This is an explicit trust-model property: expiry is judged against the
host's wall-clock, so the host, not the verifier, is authoritative about the
current time.</t>

</section>
</section>
<section anchor="request-and-verdict-envelopes"><name>Request and Verdict Envelopes</name>

<t>This section transcribes the wire envelopes. The full JSON Schemas appear
normatively in <xref target="schemas"/>.</t>

<section anchor="request"><name>Host to Verifier Request (stdin)</name>

<t>The host MUST write exactly one JSON object, UTF-8 encoded, to the verifier's
stdin, and then MUST close (EOF) stdin. The host MUST NOT write more than one
object, trailing bytes, or a stream of objects.</t>

<figure><sourcecode type="json"><![CDATA[
{
  "version": 1,
  "bundle": "<opaque proof string>",
  "request": {
    "agent_name": "research-bot",
    "project_key": "/work/acme/research",
    "program": "crewai",
    "model": "opus-4.1",
    "granted_capabilities": ["fetch_inbox", "send_message"]
  },
  "now_unix": 1751990400
}
]]></sourcecode></figure>

<t>Field requirements:</t>

<t><list style="symbols">
  <t>"version" (integer, REQUIRED) -- envelope version of the host request. A verifier
that implements this contract MUST support "1" and MUST reject any other value
with "deny code=unsupported_version" (<xref target="denial-codes"/>). Negotiation is by major only
(<xref target="versioning"/>).</t>
  <t>"bundle" (string, REQUIRED, non-empty) -- opaque to the host. The verifier owns
its internal structure. The host MUST NOT inspect, rewrite, or normalize it.</t>
  <t>"request" (object, REQUIRED) -- the privileged action the host is about to
authorize. It MUST contain:
  <list style="symbols">
      <t>"agent_name" (string, REQUIRED).</t>
      <t>"project_key" (string, REQUIRED) -- compared literally, byte-for-byte, against
the bundle's signed binding. The verifier MUST NOT apply path canonicalization
(no ".." resolution, no symlink resolution): "a/../b" and "b" are distinct
keys. This byte-literal rule is a subtle interoperability hazard and is stated
explicitly to prevent a verifier from silently normalizing a project key.</t>
      <t>"program" (string, REQUIRED).</t>
      <t>"model" (string, REQUIRED).</t>
      <t>"granted_capabilities" (array of strings, REQUIRED) -- host-defined capability
tokens the host intends to grant. They are opaque strings that the verifier
maps to its internal permission model. An empty array is permitted.</t>
    </list></t>
  <t>"now_unix" (integer, REQUIRED, positive) -- the host's current wall-clock time in
seconds since the Unix epoch. The verifier MUST evaluate credential expiry
against this value, not against its own clock.</t>
</list></t>

<t>A request that is not a JSON object, is missing a REQUIRED field, or has a field of
the wrong type MUST yield "deny code=malformed_input". A well-formed request whose
"version" is not "1" MUST yield "deny code=unsupported_version".</t>

</section>
<section anchor="verdict"><name>Verifier to Host Verdict (stdout)</name>

<t>The verifier MUST write exactly one JSON object to stdout and nothing else
(<xref target="fd-isolation"/> governs this strictly). The verdict is one of three shapes.</t>

<section anchor="allow"><name>Allow</name>

<figure><sourcecode type="json"><![CDATA[
{ "verdict": "allow" }
]]></sourcecode></figure>

</section>
<section anchor="allow-with-host-owned-nonce-consumption"><name>Allow With Host-Owned Nonce Consumption</name>

<t>Emitted only in host nonce mode (Section 7). It instructs the host to durably
record each one-time nonce so the same proof cannot be replayed. A presentation can
carry more than one nonce to reserve -- for example the agent nullifier plus a
human-uniqueness nullifier when the bundle is human-backed (the human entry's
"nonce" is namespaced "human:NULLIFIER-HASH").</t>

<figure><sourcecode type="json"><![CDATA[
{
  "verdict": "allow",
  "consume_nonces": [
    {
      "issuer_key": "15617329...:20201653...",
      "nonce": "12616665119450508255185458876855962314592339945640375882344193391684757282246",
      "retain_until": 4102444800
    }
  ]
}
]]></sourcecode></figure>

<t>"consume_nonces" (array of objects, OPTIONAL, allow-only). When present it is a
non-empty list (the key is omitted entirely when there is nothing to burn). The
host MUST reserve-before-act EACH entry (Section 7). Each entry:</t>

<t><list style="symbols">
  <t>"issuer_key" (string, REQUIRED) -- the issuer/operator key that scopes the nonce
namespace, for host bookkeeping only; the "nonce" is already globally unique
(Section 7).</t>
  <t>"nonce" (string, REQUIRED) -- the one-time value the host MUST record.</t>
  <t>"retain_until" (integer, REQUIRED) -- Unix seconds until which the host MUST
retain the consumed nonce.</t>
</list></t>

</section>
<section anchor="deny"><name>Deny</name>

<figure><sourcecode type="json"><![CDATA[
{
  "verdict": "deny",
  "code": "scope_exceeded",
  "message": "required scope exceeds the credential effective scope",
  "detail": { "required_scope": "2", "effective_scope": "1", "excess_bits": "2" }
}
]]></sourcecode></figure>

<t><list style="symbols">
  <t>"verdict" (string, REQUIRED) -- "allow" or "deny".</t>
  <t>"code" (string, REQUIRED on deny) -- a stable machine token from the registry in
<xref target="denial-codes"/>. The host MAY branch on it.</t>
  <t>"message" (string, REQUIRED on deny) -- a one-line, human-actionable reason. It
MUST NOT contain secrets.</t>
  <t>"detail" (object, OPTIONAL) -- structured context for logs/debugging. A verifier
SHOULD echo the originating internal error code here so the coarse wire "code"
stays stable while logs stay precise.</t>
  <t>"kind" (string, OPTIONAL) -- the verifier's proof-system self-description, one of
"classical", "zk", or "external" (Section 5). It MAY appear on either an "allow"
or a "deny" verdict. When absent, the host MUST interpret the verdict as "zk". A
verifier whose class is not "zk" MUST set "kind" explicitly, because omission is
read as "zk".</t>
</list></t>

</section>
</section>
<section anchor="denial-codes"><name>Denial-Code Registry</name>

<t>The stable, lowercase snake_case vocabulary for the verdict "code" field. This
table is the single normative source; hosts MAY branch on these tokens.</t>

<t>Within a wire major, this registry is closed: the deny schema (<xref target="schemas"/>)
enumerates exactly these codes, so a verdict carrying any other "code" fails
the verdict schema and the host MUST fail closed (<xref target="fail-closed"/>) under its own
classification ("schema_invalid", <xref target="failure-classes"/>) rather than relay it. A host
MUST NOT relay an unrecognized "code" as if it were a valid verifier decision:
an out-of-registry code identifies a non-conforming verifier, not a
forward-compatible denial, and relaying it would let such a verifier introduce
denial semantics this contract never defined. The net effect for the caller is
unchanged -- an unrecognized "code" always ends in deny -- but the deny is the
host's fail-closed override, never a relayed verdict. (This paragraph replaces
the -00 sentence "hosts ... MUST treat an unrecognized future 'code' as deny",
which was ambiguous about the mechanism and was readable as relay-tolerance;
see the implementation experience in <xref target="impl-status"/>.)</t>

<t>Verifiers MUST NOT add, remove, or
rename a code without a wire-major version bump (<xref target="versioning"/>). The registry is
proof-system-agnostic (Section 5): a "classical"- or "external"-kind verifier
reuses the same codes -- for example "invalid_proof" covers a failed classical
signature or token check as well as a failed zero-knowledge verification.</t>

<texttable>
      <ttcol align='left'>code</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c>malformed_input</c>
      <c>stdin missing / oversized (&gt; 1 MiB) / not JSON, or a required request field is missing or ill-typed.</c>
      <c>unsupported_version</c>
      <c>host request "version" is not "1", or the bundle's internal version is unsupported.</c>
      <c>invalid_bundle</c>
      <c>the opaque "bundle" is undecodable, not an object, or structurally wrong.</c>
      <c>invalid_proof</c>
      <c>envelope validation or proof verification failed, the mandatory verification-key pin is absent/mismatched, or the credential-to-proof anchoring failed.</c>
      <c>untrusted_root</c>
      <c>a proof's trust anchor (agent, human, or delegatee) is not in the configured trusted-root source.</c>
      <c>delegation_invalid</c>
      <c>a delegation chain break, hop-cap overflow, scope expansion, or expiry expansion.</c>
      <c>invalid_signature</c>
      <c>the request-binding signature (Appendix B) did not verify against the proven operator key.</c>
      <c>request_mismatch</c>
      <c>a host "request" field does not match the signed binding, or "granted_capabilities" are not covered by the binding's capabilities.</c>
      <c>model_mismatch</c>
      <c>the proof's committed model does not equal the requested model -- the proof is for a different model.</c>
      <c>unknown_capability</c>
      <c>a requested capability has no scope mapping (fail-closed; unmapped is never silently allowed).</c>
      <c>scope_exceeded</c>
      <c>the capability-required permission bits are not a cumulative-bit subset of the proven effective scope.</c>
      <c>expired</c>
      <c>proof-anchored "now_unix &gt;= effective_expiry" -- a strict comparison; the equality boundary is rejected.</c>
      <c>nonce_missing</c>
      <c>the proof lacks a usable nullifier / session-nonce signal.</c>
      <c>nonce_replayed</c>
      <c>the proof's one-time nonce was already seen (local mode).</c>
      <c>internal_error</c>
      <c>unexpected failure, missing artifacts, or missing trust configuration. Emitted as a deny AND with a non-zero exit code.</c>
</texttable>

<t>All rows are terminal denies. Only "internal_error" additionally sets a non-zero
exit code (Section 6). This 15-code table is the candidate IANA registry
(<xref target="iana"/>).</t>

</section>
<section anchor="fd-isolation"><name>stdout / stderr / fd-Level Isolation (Load-Bearing)</name>

<t>The whole contract depends on stdout carrying exactly one JSON object and nothing
else. This is the single most fragile part of the implementation and is normative
for both sides.</t>

<t>Verifier obligations:</t>

<t><list style="symbols">
  <t>The verifier MUST write exactly one serialized verdict to the host-facing stdout,
at the very end. A single trailing newline is OPTIONAL.</t>
  <t>No other code path may write to the host-facing stdout. Proof-verification
libraries (native, WASM, or otherwise) can write to file descriptor 1 directly --
progress bars, warnings, debug output -- bypassing any language-level stdout
wrapper. A "console.log"-style monkeypatch is therefore insufficient: it misses
native writes.</t>
  <t>A conforming verifier MUST separate verification from verdict-emission at the
file-descriptor level. The reference mechanism is process isolation with a private
verdict channel: the command spawns a worker whose stdio binds fd 0 = request in,
fd 1 = captured (everything native writes here), fd 2 = inherited parent stderr,
and fd 3 = the private verdict channel. Any raw fd-1 writes inside the worker MUST
be captured by the parent and forwarded to the parent's stderr, and MUST NOT reach
the host-facing stdout. The worker emits the single verdict only on fd 3; the
parent performs the sole write to fd 1.</t>
  <t>If the private verdict channel cannot be established on the platform, the verifier
MUST fail closed ("deny code=internal_error", non-zero exit). It MUST NOT silently
fall back to sharing fd 1. An in-process fd-redirect realization is equally
acceptable where the platform exposes the primitive; the process-isolation form is
the reference implementation and is strictly stronger.</t>
</list></t>

<t>Host obligations (single-object parse):</t>

<t>The host MUST parse the verifier's stdout as exactly one JSON object with no
trailing bytes, and MUST reject (treat as deny, Section 6) any of:</t>

<t><list style="symbols">
  <t>stdout that is empty, not valid JSON, or contains a leading/trailing prefix or
suffix around the object;</t>
  <t>multiple concatenated JSON values (a lenient parser that reads only the first
object MUST NOT be used -- two objects is a fail-closed condition);</t>
  <t>a verdict whose "verdict" field is neither "allow" nor "deny", or a "deny" missing
"code"/"message".</t>
</list></t>

<t>All diagnostics, timing, and debug logging MUST go to stderr. Hosts MUST NOT parse
stderr for the verdict.</t>

</section>
</section>
<section anchor="kind"><name>Proof-System Classes and the <spanx style="verb">kind</spanx> Self-Description</name>

<t>Because the contract is proof-system-agnostic (Section 1), the same wire envelope
carries verdicts from verifiers built on different cryptographic foundations: a
classical-signature verifier, a zero-knowledge verifier, and a third-party verifier
all speak the identical request and verdict schema and differ only in which command
the host spawns. This is the property that lets a host adopt privacy-preserving
verification without changing its wire contract.</t>

<t>The OPTIONAL verdict field "kind" lets a verifier declare which class it implements,
so a host that spawns a verifier it did not build -- or that fans a request across
several verifiers -- can record and, if it chooses, branch on the class of proof
that produced the decision. "kind" takes exactly one of three values:</t>

<texttable>
      <ttcol align='left'>kind</ttcol>
      <ttcol align='left'>Proof-system class</ttcol>
      <ttcol align='left'>Examples</ttcol>
      <c>classical</c>
      <c>Classical public-key crypto -- signatures, tokens, policy/nonce checks, no zero-knowledge.</c>
      <c>ES256K-signed receipts, JWT delegation tokens, capability/scope and replay-nonce checks.</c>
      <c>zk</c>
      <c>Zero-knowledge circuit proofs.</c>
      <c>Zero-knowledge proofs for private delegation, credential predicates, human-uniqueness nullifiers.</c>
      <c>external</c>
      <c>A third-party verifier implementing this contract with its own proof system.</c>
      <c>A vendor verifier the host adopts without depending on any specific internals.</c>
</texttable>

<section anchor="selective-disclosure-as-a-first-class-optional-lane"><name>Selective Disclosure as a First-Class, Optional Lane</name>

<t>A "zk"-class verifier proves properties of a credential -- scope, expiry, a
human-uniqueness nullifier, delegation narrowing -- without revealing the agent's
identity or the underlying attribute values. This selective-disclosure capability
is one that no signature-only contract can express, because a classical signature
necessarily discloses the signed content it authenticates.</t>

<t>The normative point is deliberately narrow: EVC does NOT require zero-knowledge
verification, but it reserves a first-class lane for it via "kind=zk". A host that
wants privacy-preserving verification and a host that wants a plain signature check
speak the identical wire protocol and differ only in which verifier command they
spawn. The privacy property is a property of the verifier the host configures, not
of the wire contract.</t>

</section>
<section anchor="normative-rules-for-kind"><name>Normative Rules for <spanx style="verb">kind</spanx></name>

<t><list style="symbols">
  <t>A verifier SHOULD set "kind" to the class it implements.</t>
  <t>A verifier that implements this contract as a "classical"- or "external"-class
verifier MUST set "kind" explicitly, because omission is read as "zk". A verifier
MUST NOT emit a "kind" value outside the three-member set above; a host MUST treat
an unrecognized "kind" as a malformed verdict and fail closed (Section 6).</t>
  <t>For backward compatibility, a verdict without "kind" MUST be interpreted by the
host as "zk". A "zk"-class verifier MAY therefore omit the field. Because a host
validating against the original closed verdict schema rejects any "kind"-bearing
verdict (<xref target="versioning"/>), a "zk"-class verifier that must remain interoperable with
such a host SHOULD omit "kind" rather than emit "kind":"zk".</t>
</list></t>

</section>
<section anchor="guardrails-advisory-metadata-not-an-authorization-input"><name>Guardrails (Advisory Metadata, Not an Authorization Input)</name>

<t>"kind" is advisory metadata about provenance, and it is self-reported by the
verifier and NOT authenticated. The "verdict", "code", and (in host nonce mode)
"consume_nonces" fields are the sole enforcement surface. A host:</t>

<t><list style="symbols">
  <t>MUST NOT upgrade a "deny" to an "allow" on the basis of "kind";</t>
  <t>MUST NOT relax any Section 6 fail-closed obligation, schema validation, verifier
selection, or nonce handling on the basis of "kind";</t>
  <t>MUST establish a verifier's proof-system class from its configured verifier
identity or policy -- which command it spawned and the trust configuration it
supplied -- never from the self-reported "kind" string alone.</t>
</list></t>

<t>A host MAY use "kind" for logging, or to deny more strictly on a mismatch between
the expected and reported class. An unrecognized "kind" is a malformed verdict and
MUST fail closed (Section 6). The threat guarded against is a hostile or buggy
verifier claiming "kind=zk" to imply privacy guarantees it did not provide.</t>

</section>
<section anchor="relationship-to-the-related-aps-draft"><name>Relationship to the Related APS Draft</name>

<t>The related draft <xref target="I-D.pidlisnyi-aps"/> does not define a zero-knowledge or
selective-disclosure verifier class (<xref target="aps"/>). EVC's "kind" lane is where
privacy-preserving verification plugs into an otherwise-identical host contract,
regardless of which framework produced the bundle.</t>

</section>
</section>
<section anchor="fail-closed-chapter"><name>Exit Codes, Timeouts, and Host Fail-Closed Obligations</name>

<section anchor="exit-code-semantics-verifier"><name>Exit-Code Semantics (Verifier)</name>

<t><list style="symbols">
  <t>Exit "0" -- a verdict object was produced ("allow" or any policy/crypto "deny").
The host reads stdout for the decision.</t>
  <t>Exit non-zero -- the verifier could not produce a trustworthy verdict at all
(could not read stdin, could not load required artifacts or trust configuration,
catastrophic internal failure). Decision-level outcomes (invalid proof, expired,
replay, mismatch) are NOT errors: they exit "0" with "verdict=deny".</t>
  <t>The one nuance: "internal_error" is emitted as "deny code=internal_error" AND
exits non-zero, so the host both sees a machine reason and fail-closes.</t>
</list></t>

</section>
<section anchor="exit-status-dominates-a-stdout-allow"><name>Exit Status Dominates a stdout Allow</name>

<t>A host MUST treat a non-zero exit as deny even when a syntactically valid "allow"
was written to stdout. Exit status is part of the contract; whenever it is non-zero
the host MUST ignore stdout for the purpose of the decision. This is the one place
an implementer may be tempted to trust stdout, and it is stated explicitly to close
that temptation. No non-zero exit -- including "internal_error" -- ever yields an
allow.</t>

</section>
<section anchor="timeout-and-input-bounds"><name>Timeout and Input Bounds</name>

<t>The host owns the timeout; the verifier does not implement its own. The host MUST
enforce a wall-clock timeout on the spawned process and treat expiry as deny. The
RECOMMENDED timeout is 10 000 ms (10 s); a conforming verifier targets under 2 s at
the 99th percentile, so 10 s leaves ample headroom. The verifier MUST bound the
request read from stdin; the reference limit is 1 MiB (1 048 576 bytes). A request
over the bound MUST yield "deny code=malformed_input"; the verifier MUST NOT buffer
an unbounded request.</t>

</section>
<section anchor="fail-closed"><name>The Fail-Closed Set</name>

<t>The host MUST treat ALL of the following as deny, regardless of what (if anything)
reached stdout:</t>

<t><list style="symbols">
  <t>non-zero exit code;</t>
  <t>timeout -- the host MUST kill the process and deny;</t>
  <t>death by signal / crash;</t>
  <t>unparseable, empty, oversized, or multi-object stdout (<xref target="fd-isolation"/>);</t>
  <t>an unknown "verdict" value or a "deny" missing required fields;</t>
  <t>a verdict that otherwise fails the verdict schema (<xref target="schemas"/>) -- including an
unrecognized "kind" value, a "code" outside the denial-code registry
(<xref target="denial-codes"/>), or any disallowed additional property.</t>
</list></t>

<t>Several of these conditions can co-occur for one verifier run: a killed process
both dies by signal and leaves stdout unparseable. The decision is a deny on
every branch. When a host reports fail-closed classes (<xref target="failure-classes"/>), it SHOULD
classify the cause it acted on in this precedence: the host's own kills first
(output bound, then timeout), then an unsolicited signal death, then a non-zero
exit, and only then the stdout parse and schema checks. In particular, death by
an unsolicited signal and a non-zero exit are distinct conditions
("signal_death" and "nonzero_exit", <xref target="failure-classes"/>) and a host MUST NOT collapse
them into one classification. Both reference hosts implement this precedence;
an early independent host implementation collapsed the two and was caught by
the conformance suite (see <xref target="impl-status"/>).</t>

<t>The verifier is designed so these are the only ways it fails ambiguously; every
outcome it can reason about is an explicit "deny" with a "code" (<xref target="denial-codes"/>).</t>

</section>
</section>
<section anchor="replay-protection-and-reserve-before-act"><name>Replay Protection and Reserve-Before-Act</name>

<t>A verifier supports one of two replay modes, selected by the host at spawn time.</t>

<t><list style="symbols">
  <t>local (default). The verifier owns durable replay state. On an otherwise-allow it
burns the proof's one-time nonce locally; a second presentation of the same proof
yields "deny code=nonce_replayed". Suitable for a single-host deployment. If the
store errors, the verifier MUST fail closed ("deny code=internal_error", non-zero
exit).</t>
  <t>host. The verifier does not persist nonces. On an otherwise-allow it returns
"consume_nonces" (Section 4.2), one entry per one-time nullifier the presentation
carries (the agent nullifier, plus the human-uniqueness nullifier for a
human-backed bundle), and the host owns durable storage under the
reserve-before-act rule. This is the mode for multi-host or clustered deployments
where the host already owns a database.</t>
</list></t>

<t>The agent nonce value is globally unique per (credential, session-nonce), so no
separate operator namespacing is needed; "consume_nonces[].issuer_key" is provided
for host-side bookkeeping only. Delegation hops add no entry: each per-hop
delegation nullifier is bound to the agent's session nonce, so reserving the agent
nullifier already covers delegation replay. The human-uniqueness nullifier for a
human-backed bundle is carried as a second reserved entry, namespaced
"human:NULLIFIER-HASH".</t>

<section anchor="reserve-before-act-host-nonce-mode"><name>Reserve-Before-Act (Host Nonce Mode)</name>

<t>When the host runs the verifier in host nonce mode and receives "allow" with
"consume_nonces", the host MUST reserve every entry in the list before performing
the privileged action:</t>

<t><list style="numbers" type="1">
  <t>For each entry in "consume_nonces", atomically insert "entry.nonce" into durable
storage with a unique-insert / "on conflict reject" semantic, retaining it until
"entry.retain_until".</t>
  <t>If all inserts are novel, proceed with the action.</t>
  <t>If any insert conflicts (that nonce was already recorded), the host MUST reject
the action as a replay -- even though the verifier returned "allow".</t>
</list></t>

<t>"Record after proceeding" is a replay window and is FORBIDDEN. The verifier's
"allow" in host mode is conditional on every host insert being novel.</t>

</section>
</section>
<section anchor="conformance"><name>Host Conformance</name>

<t>The differentiator between this contract and a governance framework is that the
host obligations are mechanically testable. Sections 4, 6, and 7 place the
load-bearing obligations on the host: it owns the timeout, the single-object stdout
parse, the exit-code interpretation, and reserve-before-act nonce consumption. A
verifier that follows the contract is not enough -- a host that trusts a
misbehaving verifier is the actual vulnerability. This section makes those host
obligations testable.</t>

<t>The suite spawns a deliberately misbehaving verifier fixture in place of a real
verifier and asserts that the host-under-test fails closed. A conforming host MUST
deny in every non-positive case below.</t>

<section anchor="misbehaving-verifier-fixtures"><name>Misbehaving-Verifier Fixtures</name>

<t>The fixtures are small, dependency-free scripts, each violating exactly one contract
obligation. The "Required host outcome" column is the normative behavior a
conforming host MUST produce; the "Class" column is the reference host's canonical
failure classification (Section 8.3). The inventory below is 29 fixtures that drive
30 "host_behavior" vectors, confirmed in "spec/test-vectors.json": the
"allow-consume-nonces.js" fixture drives two vectors (a novel-reserve allow and a
replay deny), so the fixture count is one fewer than the vector count.</t>

<texttable>
      <ttcol align='left'>Fixture</ttcol>
      <ttcol align='left'>Violates</ttcol>
      <ttcol align='left'>Required host outcome</ttcol>
      <ttcol align='left'>Class</ttcol>
      <c>well-behaved-allow</c>
      <c>-- (positive control)</c>
      <c>relay allow</c>
      <c>--</c>
      <c>well-behaved-deny</c>
      <c>-- (positive control)</c>
      <c>relay deny code=expired</c>
      <c>--</c>
      <c>well-behaved-allow-kind-classical</c>
      <c>-- (positive control, "kind")</c>
      <c>relay allow</c>
      <c>--</c>
      <c>well-behaved-allow-kind-external</c>
      <c>-- (positive control, "kind")</c>
      <c>relay allow</c>
      <c>--</c>
      <c>well-behaved-allow-kind-zk</c>
      <c>-- (positive control, explicit default "kind")</c>
      <c>relay allow</c>
      <c>--</c>
      <c>non-json-stdout</c>
      <c>stdout not valid JSON</c>
      <c>deny</c>
      <c>unparseable_stdout</c>
      <c>multiple-objects</c>
      <c>two concatenated verdicts</c>
      <c>deny</c>
      <c>multiple_objects | unparseable_stdout</c>
      <c>schema-invalid-verdict</c>
      <c>"verdict" neither allow nor deny</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>deny-missing-fields</c>
      <c>"deny" missing code/message</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>allow-trailing-garbage</c>
      <c>valid allow then trailing bytes</c>
      <c>deny</c>
      <c>unparseable_stdout</c>
      <c>binary-garbage-stdout</c>
      <c>raw non-UTF-8 bytes on stdout</c>
      <c>deny</c>
      <c>unparseable_stdout</c>
      <c>leading-garbage</c>
      <c>non-JSON prefix before a valid allow</c>
      <c>deny</c>
      <c>unparseable_stdout</c>
      <c>allow-extra-property</c>
      <c>closed schema -- disallowed additional property</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>bad-kind</c>
      <c>"kind" outside classical/zk/external</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>empty-consume-nonces</c>
      <c>"consume_nonces" violates minItems:1</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>malformed-consume-nonce</c>
      <c>nonce entry missing issuer_key/retain_until</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>deny-extra-property</c>
      <c>closed "deny" -- disallowed additional property</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>unknown-denial-code</c>
      <c>well-formed "deny" with an out-of-registry "code" (<xref target="denial-codes"/>)</c>
      <c>deny, never relayed</c>
      <c>schema_invalid</c>
      <c>nonce-entry-extra-property</c>
      <c>nonce entry has an extra property</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>nonce-entry-wrong-type</c>
      <c>nonce entry retain_until not an integer</c>
      <c>deny</c>
      <c>schema_invalid</c>
      <c>no-output-hang</c>
      <c>no output, never exits</c>
      <c>deny (kill on timeout)</c>
      <c>timeout</c>
      <c>partial-json-hang</c>
      <c>partial verdict then hangs</c>
      <c>deny (kill on timeout)</c>
      <c>timeout</c>
      <c>slow-allow-past-deadline</c>
      <c>valid allow, but only after the deadline</c>
      <c>deny (kill on timeout)</c>
      <c>timeout</c>
      <c>nonzero-exit-after-allow</c>
      <c>valid allow on stdout but non-zero exit</c>
      <c>deny (Section 6.2)</c>
      <c>nonzero_exit</c>
      <c>killed-by-signal</c>
      <c>death by signal, no verdict</c>
      <c>deny</c>
      <c>signal_death | unparseable_stdout</c>
      <c>signal-death-after-allow</c>
      <c>complete flushed allow, then unsolicited death by signal before exit</c>
      <c>deny</c>
      <c>signal_death</c>
      <c>oversize-flood</c>
      <c>floods stdout past the output bound</c>
      <c>deny (bound + kill)</c>
      <c>oversize_stdout</c>
      <c>allow-consume-nonces</c>
      <c>-- (drives reserve-before-act)</c>
      <c>reserve then allow, or deny on replay</c>
      <c>replay on conflict</c>
      <c>allow-consume-nonces-multi</c>
      <c>-- (drives reserve-all)</c>
      <c>deny if any entry conflicts</c>
      <c>replay on conflict</c>
</texttable>

<t>The "schema_invalid" fixtures collectively exercise the closed verdict schema at
every level: an unknown "verdict", a "deny" missing "code"/"message", additional
properties on both the "allow" and "deny" objects, a bad "kind", and -- for
"consume_nonces" -- an empty array, a missing required entry field, an extra entry
property, and a wrong-typed entry field. A host that validates only the outer
object, or only a subset of the nonce-entry schema, is therefore caught.</t>

</section>
<section anchor="host-under-test-hut-convention"><name>Host-Under-Test (HUT) Convention</name>

<t>The runner drives any host through a thin, language-neutral convention so a host in
any ecosystem can be tested against the same fixtures. The runner spawns the host
once per vector and communicates as follows.</t>

<t>Environment -- the runner sets, and the host MUST honor:</t>

<t><list style="symbols">
  <t>"HUT_VERIFIER_CMD" -- a JSON array (argv) the host MUST spawn as its verifier. The
host MUST NOT substitute a different command.</t>
  <t>"HUT_TIMEOUT_MS" -- the wall-clock timeout the host MUST enforce.</t>
  <t>"HUT_MAX_STDOUT_BYTES" -- the stdout output bound the host MUST enforce; exceeding
it is a fail-closed condition.</t>
  <t>"HUT_NONCE_MODE" -- "local" or "host".</t>
  <t>"HUT_NONCE_STORE" -- a filesystem path the host uses as its durable nonce store in
host nonce mode. For the harness only, the store format is newline-delimited
decimal nonce strings, UTF-8. A production host with a different store tests
against this suite by pointing a thin test adapter at this file format; the format
is a test convention, not part of the wire contract.</t>
  <t>"HUT_ACTION_LOG" -- a filesystem path. The host MUST append a non-empty marker at
the moment it authorizes the action -- after every reservation succeeds and
immediately before returning "allow" -- and MUST NOT write on any deny. This is
the observable proxy for the "act" in reserve-before-act.</t>
  <t>"HUT_FIXTURE_PIDFILE" -- a filesystem path the host MUST propagate to the spawned
verifier so the kill-proof fixtures can record their PID; the runner then confirms
the host killed the verifier on timeout/oversize. For kill-proof vectors a missing
pidfile is itself a failure.</t>
</list></t>

<t>stdin -- the runner writes exactly one request object (Section 4.1) to the host's
stdin and closes it. The host forwards this to the verifier.</t>

<t>stdout -- the host MUST write exactly one decision object and exit "0". The
fail-closed signal is the decision object, NOT the host's own exit code; a host
that itself exits non-zero fails the convention. The decision is exactly one of
three closed shapes:</t>

<t><list style="symbols">
  <t>{"decision":"allow"} -- the verifier allowed (and, in host nonce mode, every nonce
was reserved as novel); no other key is permitted;</t>
  <t>{"decision":"deny","code":"CODE"} -- a schema-valid verifier "deny", relayed
unchanged; the host MUST NOT attach a "failure_class" to a genuine verifier deny;</t>
  <t>{"decision":"deny","failure_class":"CLASS"} -- the host itself fail-closed or
rejected a replay; it MUST NOT also carry a "code".</t>
</list></t>

<t>This decision envelope exists only for the conformance harness; it is NOT part of
the wire contract and imposes nothing on a production host's internal API.</t>

</section>
<section anchor="failure-classes"><name>Host Failure Classes</name>

<t>When a host fails closed, the runner asserts why, using the classification the host
reports in "decision.failure_class". This proves the host detected the specific
violation rather than denying by accident. The normative requirement is always
deny; the failure class is the finer-grained assertion.</t>

<texttable>
      <ttcol align='left'>failure_class</ttcol>
      <ttcol align='left'>Fail-closed condition</ttcol>
      <c>nonzero_exit</c>
      <c>verifier exited non-zero</c>
      <c>timeout</c>
      <c>host timeout fired; host killed the process</c>
      <c>signal_death</c>
      <c>verifier died by an unsolicited signal</c>
      <c>unparseable_stdout</c>
      <c>stdout empty, not JSON, or with trailing bytes</c>
      <c>multiple_objects</c>
      <c>stdout carried more than one JSON value</c>
      <c>oversize_stdout</c>
      <c>stdout exceeded the host output bound</c>
      <c>schema_invalid</c>
      <c>a parsed verdict failed the verdict schema</c>
      <c>replay</c>
      <c>a "consume_nonces" entry was already reserved</c>
      <c>spawn_error</c>
      <c>the host could not spawn or drive the verifier at all</c>
</texttable>

<t>Because several fail-closed conditions can co-occur for one input, a vector MAY
admit more than one acceptable class. For example, a verifier killed by a signal
both dies by signal and leaves stdout empty. Where a fixture triggers a single
unambiguous condition, the vector pins the single class: a host that denies but
misclassifies it (for example calling an unbounded flood "unparseable_stdout"
instead of enforcing the "oversize_stdout" bound) is flagged, because the
misclassification reveals a real gap.</t>

</section>
<section anchor="two-independent-reference-hosts-and-scope-limits"><name>Two Independent Reference Hosts and Scope Limits</name>

<t>Two independent reference hosts demonstrate portability: one in JavaScript
("spec/reference-host.js") and one in Rust ("spec/reference-host-rs/", producing an
"evc-reference-host" binary). Both pass the full suite; each is concrete interop
evidence that the host obligations are implementable and testable in more than one
language.</t>

<t>As a black-box harness the suite proves three things about reserve-before-act: the
reservation is durably written (novel case), authorization is gated on the durable
uniqueness check (replay case, the primary guarantee), and every entry is checked
(reserve-all case). It does NOT prove the fine-grained intra-allow-path ordering --
that within a single "allow" the durable write is committed strictly before the
action marker -- because distinguishing "reserve then act" from "act then reserve,
both before returning allow" would require fault injection, which a portable
black-box runner cannot induce. That crash-safety property remains a host
obligation (Section 7); this suite asserts the observable gate, not the write
barrier. Implementers SHOULD additionally cover the crash-window ordering with an
in-process test in their own codebase. Stating this limit openly is deliberate: it
scopes exactly what the conformance claim does and does not cover.</t>

</section>
</section>
<section anchor="versioning"><name>Wire Versioning</name>

<t>Two version tokens live at different layers with deliberately different rules.</t>

<t>Wire-facing envelopes are integer-major. The host request "version" (Section 4.1)
and the internal bundle version are single integers, negotiated by major only. A
verifier supports a fixed set of wire majors; an unsupported major is
"deny code=unsupported_version". There is no minor/patch at the wire layer: any
breaking change to the request or verdict envelope increments the integer. The
denial-code registry (<xref target="denial-codes"/>) is part of the wire contract and is therefore
also governed by the integer-major rule: adding, removing, or renaming a code is a
wire-major change. Embedded proofs carried inside the opaque bundle keep their own
semantic-version string and the verifier's existing major-only compatibility rule.</t>

<t>Additive OPTIONAL fields with a defined default do not bump the wire major. The
verdict "kind" field (Section 5) is OPTIONAL and its absence has a defined meaning
("zk"). Adding it is compatible in the two directions that occur in practice: (i) a
verifier that omits "kind" -- which includes every wire-1 verifier that predates
the field, all of them "zk"-class -- produces verdicts that both pre-revision and
revision-aware hosts accept; and (ii) a revision-aware host accepts those older
no-"kind" verdicts unchanged, reading them as "zk".</t>

<t>The one caveat, stated plainly: the verdict schema is closed
("additionalProperties: false"), so a host validating against the original schema
will reject any verdict that actually carries "kind" -- including a "zk" verifier's
explicit "kind":"zk". The compatibility guarantee is therefore precise rather than
absolute: omitted-"kind" verdicts interoperate in both directions, but any verdict
that emits "kind" requires a revision-aware host. This does not force a wire-major
bump, because the two classes of verifier that would emit "kind" are already paired
with revision-aware hosts: a "zk"-class verifier that must remain interoperable with
a strict pre-revision host SHOULD simply omit the field, and a "classical"- or
"external"-class verifier -- which MUST emit "kind" -- did not exist under the
original wire-1 contract and so is consumed only by revision-aware hosts. A field
that is REQUIRED, or whose omission would change how an existing verdict is
interpreted, would instead remain a wire-major change.</t>

</section>
<section anchor="rsd"><name>Relationship to Receipt Signer Discovery</name>

<t>A sibling specification, Receipt Signer Discovery (RSD), defines a
".well-known/bolyra-signers.json" document (an RFC 8615 <xref target="RFC8615"/> well-known URI)
that lets a receipt verifier learn which ES256K signer address(es) to accept. It is
relevant to EVC because a "classical"-class verifier that checks signed receipts
MAY consume it to establish which signers it trusts.</t>

<t>RSD is not part of the EVC wire boundary, and a full treatment is out of scope for
this document. Three consumer rules from RSD are pulled into the Security
Considerations (<xref target="security"/>) because they bear on a verifier's trust configuration:
a consumer MUST fetch over HTTPS, and plain "http://" MUST be rejected except for
loopback addresses (development); a consumer MUST NOT follow redirects; and a
consumer MUST treat any transport or schema failure as a verification failure,
never as "no signer restriction". A separate RSD Internet-Draft, including any
well-known-URI
registration, is deferred past this document (<xref target="iana"/>).</t>

</section>
<section anchor="relationship-to-other-work"><name>Relationship to Other Work</name>

<section anchor="draft-klrc-aiagent-auth-03-complementary"><name>draft-klrc-aiagent-auth-03 (Complementary)</name>

<t><xref target="I-D.klrc-aiagent-auth"/> ("AI Agent Authentication and Authorization",
draft-klrc-aiagent-auth-03, 2026-07-06, Informational) addresses agent
authentication and authorization by leveraging existing standards rather than
defining new protocols. Its Section 7 ("Agent Credentials") adopts the WIMSE
credential formats -- the Workload Identity Token (WIT) and the X.509 Workload
Identity Certificate (WIC); Section 6 addresses agent identifiers (WIMSE
identifiers, potentially SPIFFE IDs); and Section 10 covers authorization via OAuth
2.0 <xref target="RFC6749"/> access tokens, including Section 10.3 ("Use of OAuth 2.0 Access
Tokens") on how the "sub" claim carries a delegated subject and Section 10.4.1
("User Delegates Authorization") on delegating authorization to an agent through an
OAuth Authorization Code Grant.</t>

<t>EVC addresses the downstream decision boundary that draft-klrc-aiagent-auth-03 does
not: given a bundle -- which can carry a WIMSE credential or an OAuth access token
inside its opaque "bundle" -- how does a host obtain and enforce a fail-closed
authorization verdict at the point of a privileged action? The framing is that EVC
is the verdict-and-enforcement companion to the identity and authorization layer
that draft-klrc-aiagent-auth-03 assembles from WIMSE and OAuth. A WIMSE/OAuth token
is one possible payload a "classical"-class verifier (Section 5) validates; a
zero-knowledge credential is what a "zk"-class verifier validates. The host contract
is identical either way. The two documents are complementary and operate at
different points in the flow; EVC does not compete with, restate, or depend on the
draft-klrc-aiagent-auth-03 mechanisms.</t>

</section>
<section anchor="aps"><name>draft-pidlisnyi-aps-03 (Related -- Agent Passport System)</name>

<t><xref target="I-D.pidlisnyi-aps"/> ("Agent Passport System", draft-pidlisnyi-aps-03, 2026-07-18)
is a broad governance framework. It defines a DID method "did:aps" using
multibase-encoded Ed25519 public keys, Ed25519-based agent passports, and a
three-record policy chain (action intent, policy decision, receipt) whose
signatures are computed with EdDSA per RFC 8032.</t>

<t>A factual, citable point: draft-pidlisnyi-aps-03 does not define a zero-knowledge or
selective-disclosure verifier class; its signed artifacts are Ed25519-signed and
content-addressed. Its Security Considerations (its Section 9) speak to evidence
authenticity rather than disclosure minimization -- for example, that "A valid
receipt signature proves that the issuer attests the receipt's payload; it does not
prove the payload corresponds to external fact."</t>

<t>The positioning is neutral and about altitude, not merit. APS is a full
governance/passport/receipt framework; EVC is the narrow, testable host↔verifier
decision boundary that any such framework needs at the point of enforcement. The
two are complementary: an APS policy-decision engine could be wrapped as an
"external"-class (or "classical"-class) EVC verifier, and in the lane APS does not
define, a "zk"-class verifier adds selective disclosure -- proving authority without
revealing the passport or the underlying attributes. This document does not
characterize APS's disclosure model beyond the factual statement that it defines no
zero-knowledge class.</t>

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

<t>[Note to the RFC Editor: please remove this section before publication, per
<xref target="RFC7942"/>.]</t>

<t>This section records the status of known implementations of the contract at the
time of writing, per the process in <xref target="RFC7942"/>. Listing here does not imply
endorsement.</t>

<section anchor="verifier-bolyra-verify-production"><name>Verifier: bolyra verify (production)</name>

<t>The "@bolyra/cli" npm package (version 0.9.0 at the time of writing) ships
"bolyra verify", a spawnable external verifier implementing the verifier side
of this contract: one JSON request on stdin, one verdict object on stdout,
fail-closed on every malformed, oversized, or unexpected input, with the
denial-code registry of this document. It implements the "zk" and "classical"
verifier classes. Maturity: released, publicly installable.</t>

</section>
<section anchor="reference-hosts-two-languages"><name>Reference hosts (two languages)</name>

<t>Two reference hosts implement the host obligations independently: a JavaScript
host ("spec/reference-host.js") and a Rust host ("spec/reference-host-rs/").
Both pass the host-conformance suite (<xref target="conformance"/>): 29 misbehaving- and
well-behaved-verifier fixtures driving 30 "host_behavior" vectors. The suite
itself is published as the "@bolyra/evc-conformance" npm package (version
0.4.0, vector set 0.8.0 at the time of writing) with a build-provenance
attestation, runnable against any host with no dependency on the authors'
implementations. Maturity: reference implementations and released suite,
maintained alongside this document.</t>

</section>
<section anchor="independent-host-implementation-mcp-use-evc-example"><name>Independent host implementation: mcp-use-evc-example</name>

<t>A maintainer of the mcp-use framework built a standalone TypeScript host
implementation of this contract ("khandrew1/mcp-use-evc-example") behind that
framework's pre-dispatch tool-call middleware, developed from the contract text
alone with no dependency on any component of the authors' implementations. At
pinned commit "17642a5efd5e1c42991ab8aa399cd6138f64f635"
(https://github.com/khandrew1/mcp-use-evc-example) it passes 27 of 27
"host_behavior" vectors of vector set 0.5.0. Earlier implementation feedback from this work identified two -00 obligations
that were easy to miss: distinct handling of signal death versus non-zero exit
in failure reporting, and treatment of out-of-registry denial codes as schema
failures rather than relayed verifier denials. That feedback motivated the
explicit precedence language in <xref target="fail-closed"/>, the registry-closure language
in <xref target="denial-codes"/>, and the conformance vector added in the -01 revision. It is listed
here with the maintainer's permission; per that project's own framing, this
contract is independent of and not part of MCP or mcp-use. Maturity: released
example, maintained in that project.</t>

</section>
<section anchor="hosted-verifier-preview"><name>Hosted verifier (preview)</name>

<t>A hosted HTTP mapping of the same contract ("POST /v1/verify", one request
object in, one verdict object out, fail-closed) is operated as a preview for
design partners. It carries no service-level commitment and is not a normative
part of this document; it exists to demonstrate that the contract is
transport-portable. Maturity: preview, access-controlled.</t>

</section>
<section anchor="independent-implementation-experience"><name>Independent implementation experience</name>

<t>The maintainer of an unrelated MCP server project (mcp_agent_mail_rust) built
an off-by-default Ed25519 registration-proof gate designed to the v1 contract
boundary, developed without depending on any component of the authors'
implementations. Maturity: shipped in that project, off by default.</t>

</section>
<section anchor="independently-published-reproduction-record"><name>Independently published reproduction record</name>

<t>The maintainer of the VATE project
("Poke-nushi/Verifiable-Agent-Trust-Envelope") replayed unchanged a
solicited three-input interoperation run originally executed by the authors:
one mandate presentation evaluated both by the native verifier path of the
authors' SDK and through a spawnable command host implementing the host side
of this contract, at pinned public commits of both codebases. All three
native verdicts and host decisions reproduced -- P: allow, and N1/N2: deny
with "request_mismatch", matching the original native verdicts and host
decisions -- and the issued presentation matched the original byte-for-byte.
The maintainer published the full run record and evidence bundle in that
project's repository
(https://github.com/Poke-nushi/Verifiable-Agent-Trust-Envelope/tree/571def8f4cd83c7d46df9887fab8629108465a12/docs/conformance/run-records/bolyra-x402-2026-09-07),
including fixed-input hashes and a source manifest of 17 files. That
record's own qualifications are preserved here: it covers one partial case
with two auxiliary controls and does not establish full-corpus conformance,
adoption, or endorsement. Maturity: published run record in a third-party
repository.</t>

</section>
<section anchor="cross-specification-experience-x402-mandate-binding-agreement"><name>Cross-specification experience: x402 mandate-binding agreement</name>

<t>A profile carrying this contract's verdict evidence alongside x402 payment
payloads is proposed to the x402 Foundation (x402 pull request 3376). In the
course of that work the authors wired the published binding fixtures of a
separately proposed x402 extension ("authority", pull request 3220, a
different author) into the profile's test suite and independently re-derived
that specification's mandate-binding value from its prose. The exercise
surfaced a preimage ambiguity (whether a mandate digest retains its
"sha256:" prefix). The authority extension's author clarified that
specification by adding an explicit requirement to retain the "sha256:"
prefix (commit
https://github.com/x402-foundation/x402/commit/72c3704dfb89851fb7b1f0dca4d327b804faee5c);
the profile's 571-test suite passes against the clarified text with no code
changes on either side (comparison:
https://github.com/x402-foundation/x402/pull/3220#issuecomment-5592861356).
This records agreement on mandate-binding values and specification feedback;
it does not establish an independent EVC host or verifier implementation by
that author. Maturity: proposed extension under review.</t>

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

<section anchor="fail-closed-is-the-whole-safety-property"><name>Fail-Closed Is the Whole Safety Property</name>

<t>Every ambiguous outcome -- non-zero exit, timeout, signal death, unparseable,
oversized, or multi-object stdout, schema failure, or an unrecognized "kind" -- MUST
result in deny (Section 6). This is the entire safety property of the contract: the
host never proceeds on ambiguity. The host-conformance suite (Section 8) is the
mechanism that makes this claim checkable rather than asserted, spawning
deliberately misbehaving verifiers and confirming the host fails closed. Exit status
dominates a stdout allow (Section 6.2): a non-zero exit is a deny even when a
syntactically valid "allow" reached stdout.</t>

</section>
<section anchor="kind-is-unauthenticated-self-report"><name><spanx style="verb">kind</spanx> Is Unauthenticated Self-Report</name>

<t>A host MUST establish a verifier's proof-system class from configured verifier
identity or policy, never from the "kind" string, and MUST NOT relax trust, verifier
selection, schema validation, or nonce handling on its basis (Section 5). The threat
is a hostile or buggy verifier that claims "kind=zk" to imply privacy guarantees it
did not provide, or that emits an unfamiliar "kind" to probe for a lenient host. An
unrecognized "kind" is a schema failure and MUST fail closed.</t>

</section>
<section anchor="nonce-reservation-and-replay"><name>Nonce Reservation and Replay</name>

<t>Reserve-before-act ordering (Section 7) is a load-bearing property. "Record after
proceeding" is a replay window and is FORBIDDEN. On a multi-entry "consume_nonces"
(agent nullifier plus human-uniqueness nullifier), the host MUST reserve every entry
and MUST reject on any conflict. In local nonce mode, a store error MUST fail closed.
The black-box conformance suite proves the observable gate -- that authorization is
conditioned on the durable uniqueness check -- but not the intra-allow-path
write-barrier ordering (Section 8.4); hosts SHOULD cover that crash-window ordering
with an in-process test.</t>

</section>
<section anchor="redirect-and-downgrade-in-signer-discovery"><name>Redirect and Downgrade in Signer Discovery</name>

<t>For a "classical"-class verifier that consumes a Receipt Signer Discovery document
(<xref target="rsd"/>): a consumer MUST fetch over HTTPS, and plain "http://" MUST be
rejected except for loopback addresses (development); a consumer MUST NOT follow
redirects, because a redirect can move the fetch to a plaintext or attacker-chosen
origin after the protocol check; and a consumer MUST treat any transport, status, or
schema
failure as a verification failure, never as "no signer restriction". Discovery is
trust-in-origin, not endorsement and not PKI. When both an out-of-band pinned signer
and a discovery-URL signer source are supplied, a consumer MUST require the two to
agree.</t>

</section>
<section anchor="output-bound-truncation-and-resource-exhaustion"><name>Output-Bound Truncation and Resource Exhaustion</name>

<t>The stdout output bound and the stdin bound (Section 6.3) bound a hostile verifier
that floods or hangs; the host MUST enforce both and kill on breach. The
"oversize-flood" and hang fixtures (Section 8.1) prove this. A truncated stdout is
unparseable and MUST deny, never yield a partial allow.</t>

</section>
<section anchor="tail-truncation"><name>Tail Truncation of Hash-Chained Receipts (Informative)</name>

<ul empty="true"><li>
  <t><strong>NEW -- draft-only; not in shipped EVC v1 / RSD v1.</strong></t>
</li></ul>

<t>For a hash-chained signed-receipt log that a "zk"- or "classical"-class verifier may
consult, an attacker who can drop the newest entries can mount a tail-truncation
attack: the chain still verifies as a valid prefix, so the verifier sees an older,
shorter-but-consistent history. This is a real property, but it sits below the EVC
host↔verifier boundary -- receipt-chain semantics live in the receipt library, not
in the EVC wire envelope -- so this document states no new normative EVC obligation
here. As guidance a verifier vendor may adopt: a verifier that relies on receipt
ordering should anchor the expected chain tip (a signed high-water mark or a
monotonic counter) out of band and treat a shorter-than-expected chain as a
verification failure. A normative mitigation, if desired, belongs in a dedicated
receipts/RSD companion draft where a MUST can be properly grounded, and would be
referenced from here.</t>

</section>
<section anchor="domain-separation"><name>Domain Separation</name>

<t>The request-binding signature (Appendix B) is domain-separated by a tag that
prevents a binding signature from being replayed as any other signature the
verifier's scheme produces, and vice-versa. This closes a cross-context signature
replay class. The tag is versioned; the binding revision described in Appendix B
uses the ".v2" tag. This consideration applies only to a verifier whose internal
binding follows Appendix B; it is below the EVC boundary (the host never sees the
binding) and is included because Appendix B is retained as informative.</t>

</section>
<section anchor="binding-of-credential-expiry"><name>Binding of Credential Expiry</name>

<t>This consideration applies only to a verifier whose internal binding follows
Appendix B; it is below the EVC boundary (the host never sees the binding) and is
included because Appendix B is retained as informative.</t>

<t>The binding in Appendix B originally signed five fields and did not cover the
credential expiry; that revision is referred to here as binding v1. A verifier whose
proof system does not independently bind expiry -- a "classical"- or
"external"-class verifier (Section 5) -- could therefore be presented a binding whose
signed fields matched an issued mandate while an expiry value drawn from outside the
signature was substituted. A presenter able to re-anchor a later expiry onto an
already-issued mandate could obtain an "allow" past the mandate's intended lifetime,
extending the credential's effective duration. The escalation is bounded: it extends
duration at the already-granted permission tier and audience, and does not permit
tier, audience, or payee escalation. A "zk"-class verifier that binds expiry within
its proof was not exposed to this substitution.</t>

<t>The current binding (binding v2, Appendix B) places "expiry" inside the signed
binding, versions the domain-separation tag to
"bolyra.external-verifier.binding.v2", and, after the signature verifies, requires
the signed "binding.expiry" to equal the credential expiry that the scope and expiry
checks consume; a mismatch is a verification failure ("deny code=invalid_bundle"). A
binding carrying only the earlier five fields is treated as an obsolete binding v1
and rejected as an unsupported version ("deny code=unsupported_version"), with no
compatibility mode and no advisory-expiry fallback. A verifier following Appendix B
therefore signs "expiry" as part of the binding and rejects a five-field binding
rather than accept an expiry that no signature covers. As with Domain Separation
above, this is a property of the reference verifier's internal binding, stated with
the lowercase "must" convention of Appendix B; it is below the EVC wire boundary and
imposes no new normative obligation on the host contract.</t>

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

<t>A "zk"-class verifier lets the host authorize an action without learning the agent's
identity or attribute values; this is the selective-disclosure property of
Section 5. EVC bounds what the verifier learns, not what the host already knows: the
request context the host supplies ("agent_name", "project_key", "program", "model",
"granted_capabilities") is host-chosen and may itself be identifying. Implementers
should note this asymmetry -- a privacy-preserving verifier does not make the host's
own request context private -- and minimize identifying content in the request where
the deployment's threat model calls for it.</t>

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

<ul empty="true"><li>
  <t><strong>NEW -- draft-only, not in shipped EVC v1.</strong></t>
</li></ul>

<section anchor="external-verifier-denial-codes-registry"><name>External Verifier Denial Codes Registry</name>

<t>This document requests that IANA create a new registry, "External Verifier Denial
Codes", to catalog the machine-readable denial-code vocabulary of <xref target="denial-codes"/>.</t>

<t><list style="symbols">
  <t>Registry name: External Verifier Denial Codes.</t>
  <t>Registration policy: Specification Required <xref target="RFC8126"/>.</t>
  <t>Columns: "code" (the snake_case token); brief description; wire version
introduced; change controller; reference.</t>
</list></t>

<t>Critical clarification reconciling the registry with the closed wire enum: the
wire denial-code set is a closed enum on the wire. A verifier MUST NOT add, remove,
or rename a code without a wire-major version bump (<xref target="denial-codes"/> and <xref target="versioning"/>). The
IANA registry does NOT relax this and does NOT open the enum at runtime. It is a
catalog of the codes each spec version defines: a new registration is admissible
only as part of a published EVC wire-major/spec revision that adds the code, and
each registry entry records the wire version that introduced it. A verifier that
emits an unregistered code is non-conformant exactly as it is today; the registry
changes discoverability, not the closed-set semantics or the version-bump rule.
Third-party ("external"-class) verifiers reuse the existing vocabulary and do not
mint private codes at runtime.</t>

<t>Initial contents: the 15 codes of <xref target="denial-codes"/>, each recorded with its meaning, the
wire version that introduced it ("1"), change controller (this document / the EVC
specification), and reference (this document).</t>

</section>
<section anchor="proof-system-classes-closed-enum-no-registry-requested"><name>Proof-System Classes: Closed Enum, No Registry Requested</name>

<t>The "kind" value set ("classical", "zk", "external") of Section 5 is deliberately
NOT proposed as an IANA registry. The set is small and closed, and adding a value is
a wire-facing change already governed by the wire-major rule (<xref target="versioning"/>). A fixed
enum in the specification is preferable to a registry here; the tradeoff is that a
future proof-system class requires a spec revision rather than a registration, which
is acceptable given how rarely the class set is expected to change.</t>

</section>
<section anchor="deferred-registrations"><name>Deferred Registrations</name>

<t><list style="symbols">
  <t>Well-known URI. The Receipt Signer Discovery document
(".well-known/bolyra-signers.json", <xref target="rsd"/>) would need an RFC 8615
<xref target="RFC8615"/> well-known-URI registration, but that belongs to a separate RSD
Internet-Draft, not this one. It is out of scope for this document.</t>
  <t>Media type. A proof-envelope media type exists in the wider ecosystem but is below
the EVC boundary (the bundle is opaque); EVC itself defines no new media type. No
media-type registration is requested.</t>
</list></t>

</section>
</section>


  </middle>

  <back>


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

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



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>



    </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="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="RFC7662">
  <front>
    <title>OAuth 2.0 Token Introspection</title>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <date month="October" year="2015"/>
    <abstract>
      <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7662"/>
  <seriesInfo name="DOI" value="10.17487/RFC7662"/>
</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="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="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="I-D.klrc-aiagent-auth" >
  <front>
    <title>AI Agent Authentication and Authorization</title>
    <author initials="P." surname="Kasselman" fullname="P. Kasselman">
      <organization></organization>
    </author>
    <author initials="D." surname="Lombardo" fullname="D. Lombardo">
      <organization></organization>
    </author>
    <author initials="Y." surname="Rosomakho" fullname="Y. Rosomakho">
      <organization></organization>
    </author>
    <author initials="B." surname="Campbell" fullname="B. Campbell">
      <organization></organization>
    </author>
    <author initials="A." surname="Steele" fullname="A. Steele">
      <organization></organization>
    </author>
    <date year="2026" month="July" day="06"/>
  </front>
</reference>
<reference anchor="I-D.pidlisnyi-aps" >
  <front>
    <title>Agent Passport System</title>
    <author initials="" surname="Pidlisnyi" fullname="Pidlisnyi">
      <organization></organization>
    </author>
    <date year="2026" month="July" day="18"/>
  </front>
</reference>


    </references>

</references>


<?line 1167?>

<section anchor="schemas"><name>Request and Verdict JSON Schemas (Normative)</name>

<section anchor="request-schema"><name>Request Schema</name>

<figure><sourcecode type="json"><![CDATA[
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://bolyra.ai/spec/external-verifier-request-v1.json",
  "title": "External Verifier Request v1",
  "type": "object",
  "required": ["version", "bundle", "request", "now_unix"],
  "additionalProperties": true,
  "properties": {
    "version": { "type": "integer", "const": 1 },
    "bundle": { "type": "string", "minLength": 1 },
    "request": {
      "type": "object",
      "required": [
        "agent_name",
        "project_key",
        "program",
        "model",
        "granted_capabilities"
      ],
      "additionalProperties": true,
      "properties": {
        "agent_name": { "type": "string" },
        "project_key": { "type": "string" },
        "program": { "type": "string" },
        "model": { "type": "string" },
        "granted_capabilities": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    },
    "now_unix": { "type": "integer", "exclusiveMinimum": 0 }
  }
}
]]></sourcecode></figure>

</section>
<section anchor="verdict-schema-closed"><name>Verdict Schema (Closed)</name>

<figure><sourcecode type="json"><![CDATA[
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://bolyra.ai/spec/external-verifier-verdict-v1.json",
  "title": "External Verifier Verdict v1",
  "oneOf": [
    {
      "type": "object",
      "required": ["verdict"],
      "additionalProperties": false,
      "properties": {
        "verdict": { "const": "allow" },
        "kind": { "type": "string", "enum": ["classical", "zk", "external"] },
        "consume_nonces": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "required": ["issuer_key", "nonce", "retain_until"],
            "additionalProperties": false,
            "properties": {
              "issuer_key": { "type": "string" },
              "nonce": { "type": "string" },
              "retain_until": { "type": "integer" }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "required": ["verdict", "code", "message"],
      "additionalProperties": false,
      "properties": {
        "verdict": { "const": "deny" },
        "kind": { "type": "string", "enum": ["classical", "zk", "external"] },
        "code": {
          "type": "string",
          "enum": [
            "malformed_input",
            "unsupported_version",
            "invalid_bundle",
            "invalid_proof",
            "untrusted_root",
            "delegation_invalid",
            "invalid_signature",
            "request_mismatch",
            "model_mismatch",
            "unknown_capability",
            "scope_exceeded",
            "expired",
            "nonce_missing",
            "nonce_replayed",
            "internal_error"
          ]
        },
        "message": { "type": "string" },
        "detail": { "type": "object" }
      }
    }
  ]
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="binding"><name>Binding Signature (Informative)</name>

<t>This appendix describes the request-authorizing signature carried inside a bundle by
Bolyra's "zk"- and "classical"-class reference verifiers. It is included to
illustrate one verifier's internal binding. It is explicitly below the
interoperability boundary: the host never sees these bytes, and a conforming verifier
of any class may use any binding it chooses. Nothing in this appendix is a normative
obligation of the EVC wire contract. The lowercase "must"/"must not" phrasing below
states requirements of the reference verifier implementation, not requirements of
this document; they are not BCP 14 keywords.</t>

<t>The bundle carries a request-authorizing signature that binds the request context to
the cryptographic key the proof commits to. The binding is versioned independently of
the wire envelope; this appendix describes binding v2, in which the credential expiry
is signature-bound. In the reference verifier:</t>

<t><list style="symbols">
  <t>Canonical payload (binding v2). Let "binding" be the object with exactly the six
fields "agent_name", "project_key", "program", "model", "capabilities" (a string
array), and "expiry" (a positive integer, Unix seconds). The canonical payload is
the sorted-key, compact (no insignificant whitespace) JSON serialization of
"binding". Object keys must be sorted and array elements (including "capabilities")
must not be reordered. The verifier compares "capabilities" as a set for
authorization, but the signed bytes are order-sensitive. "expiry" became part of the
signed binding in binding v2; the Security Considerations note on expiry binding
(<xref target="security"/>) states why.</t>
  <t>Version discrimination is structural, not a declared version field. The reference
verifier classifies a binding by its exact key set: the six fields above and no
others. A member outside that set is rejected ("deny code=invalid_bundle") before
any version is inferred. A well-formed binding carrying only the earlier five fields
(no "expiry") is an obsolete binding v1 and is rejected
("deny code=unsupported_version"); no compatibility mode accepts it. An "expiry"
that is not a positive integer is rejected ("deny code=invalid_bundle").</t>
  <t>Domain separation. A domain-separation tag prevents a binding signature from being
replayed as any other signature. The tag is versioned; binding v2 uses the ".v2"
tag: DST = utf8("bolyra.external-verifier.binding.v2"), and
dsInput = DST || 0x00 || payload. The single 0x00 byte separates the ASCII domain
tag from the canonical binding bytes.</t>
  <t>Digest to field element. digest = SHA-256(dsInput) (32 bytes);
msgField = BigInt("0x" || hex(digest)) mod BN254_FIELD_ORDER, where
BN254_FIELD_ORDER is
21888242871839275222246405745257275088548364400416034343698204186575808495617.</t>
  <t>Sign / verify. Sign with EdDSA-Poseidon over BabyJubjub; verify by recomputing
msgField from the bundle's own "binding" bytes and checking the signature against
the operator public key the proof commits to. A signing key disjoint from the
credential is rejected ("deny code=invalid_signature"), closing the cross-signer
replay class. After the signature verifies, the reference verifier additionally
requires "binding.expiry" to equal the credential expiry that the scope and expiry
checks consume, rejecting a mismatch ("deny code=invalid_bundle"); this binds the
strict-expiry check to the signed value. A verifier consuming a foreign bundle
recomputes the digest from the bundle's own "binding" bytes and does not trust a
self-asserted digest.</t>
</list></t>

</section>
<section anchor="examples"><name>Worked Examples (Informative)</name>

<t>Each example is a real (stdin request, stdout verdict) pair against the reference
verifier. Requests are abbreviated ("bundle" elided).</t>

<section anchor="allow-local-nonce-mode"><name>Allow (Local Nonce Mode)</name>

<t>Request:</t>

<figure><sourcecode type="json"><![CDATA[
{ "version": 1, "bundle": "...", "request": {
    "agent_name": "research-bot", "project_key": "/work/acme/research",
    "program": "crewai", "model": "opus-4.1",
    "granted_capabilities": ["fetch_inbox", "send_message"] },
  "now_unix": 1751990400 }
]]></sourcecode></figure>

<t>Verdict (exit 0):</t>

<figure><sourcecode type="json"><![CDATA[
{ "verdict": "allow" }
]]></sourcecode></figure>

</section>
<section anchor="allow-with-consumenonces-host-nonce-mode"><name>Allow With consume_nonces (Host Nonce Mode)</name>

<t>Same request, verifier spawned in host nonce mode. This agent-only bundle yields a
single entry; a human-backed bundle would add a second "human:NULLIFIER-HASH"
entry. Verdict (exit 0):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "verdict": "allow",
  "consume_nonces": [
    {
      "issuer_key": "15617329766995256858590222302430068383949745072531974464084158078905448850943:20201653676552407165606319978171745645181779505176156736762229713293662347780",
      "nonce": "12616665119450508255185458876855962314592339945640375882344193391684757282246",
      "retain_until": 4102444800
    }
  ]
}
]]></sourcecode></figure>

<t>The host MUST reserve every entry's "nonce" atomically before acting (Section 7).</t>

</section>
<section anchor="deny-scopeexceeded"><name>Deny -- scope_exceeded</name>

<t>Request whose credential proves only READ_DATA but whose "send_message" capability
requires WRITE_DATA. Verdict (exit 0):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "verdict": "deny",
  "code": "scope_exceeded",
  "message": "required scope exceeds the credential effective scope",
  "detail": { "required_scope": "2", "effective_scope": "1", "excess_bits": "2" }
}
]]></sourcecode></figure>

</section>
<section anchor="deny-modelmismatch"><name>Deny -- model_mismatch</name>

<t>Request whose "model" differs from the model the proof commits to. Verdict (exit 0):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "verdict": "deny",
  "code": "model_mismatch",
  "message": "proven model hash does not match the requested model",
  "detail": { "requestModel": "model-beta" }
}
]]></sourcecode></figure>

</section>
<section anchor="deny-malformedinput"><name>Deny -- malformed_input</name>

<t>Truncated JSON on stdin. Verdict (exit 0):</t>

<figure><sourcecode type="json"><![CDATA[
{ "verdict": "deny", "code": "malformed_input", "message": "request stdin is not valid JSON" }
]]></sourcecode></figure>

</section>
<section anchor="deny-internalerror-fail-closed-non-zero-exit"><name>Deny -- internal_error (Fail-Closed, Non-Zero Exit)</name>

<t>No trusted-root source configured. Verdict on stdout AND a non-zero exit code, so the
host fail-closes on either signal:</t>

<figure><sourcecode type="json"><![CDATA[
{ "verdict": "deny", "code": "internal_error", "message": "no trusted root source configured" }
]]></sourcecode></figure>

</section>
<section anchor="allow-classical-kind-verifier"><name>Allow -- classical-kind Verifier</name>

<t>A "classical"-class verifier -- for example one that checks an ES256K-signed receipt
and a JWT delegation token <xref target="RFC7519"/> rather than a zero-knowledge proof -- returns
the same "allow" envelope, tagged with its "kind". Verdict (exit 0):</t>

<figure><sourcecode type="json"><![CDATA[
{ "verdict": "allow", "kind": "classical" }
]]></sourcecode></figure>

</section>
<section anchor="deny-external-kind-verifier"><name>Deny -- external-kind Verifier</name>

<t>A third-party verifier denies with the shared registry (<xref target="denial-codes"/>) and its own
"kind". Verdict (exit 0):</t>

<figure><sourcecode type="json"><![CDATA[
{ "verdict": "deny", "kind": "external", "code": "expired", "message": "credential expired" }
]]></sourcecode></figure>

<t>The agent-only "zk" examples above omit "kind"; omission is interpreted as
"zk". An explicit "kind" value of "zk" is also valid (Section 5).</t>

</section>
</section>
<section anchor="fixtures"><name>Host-Conformance Fixture List (Informative)</name>

<t>The 30 "host_behavior" vectors and the Host-Under-Test environment variables of
Section 8 are reproduced there as tables. Implementers building or testing a host
should consult Section 8.1 (fixture inventory), Section 8.2 (the HUT convention and
environment variables), and Section 8.3 (failure classes), together with the two
reference hosts at "spec/reference-host.js" and "spec/reference-host-rs/".</t>

</section>
<section anchor="changes-01"><name>Changes Since draft-kondoju-evc-01</name>

<t>[Note to the RFC Editor: please remove this section before publication.]</t>

<t>This revision introduces no new protocol requirements and changes no wire
format or required host behavior. It expands test coverage of existing
requirements and records implementation evidence:</t>

<t><list style="symbols">
  <t>Host conformance (Section 8): added two vectors. "signal-death-after-allow"
(deny, class "signal_death"): the verifier writes a complete, schema-valid,
flushed "allow" and is then terminated by an unsolicited fatal signal before
ever exiting. This catches the stdout-first host that parses the delivered
verdict and then guards the exit status with a "code greater than zero"
style check, which signal death bypasses (the exit code is null or negative
in common runtimes rather than positive). "well-behaved-allow-kind-zk"
(relay allow): a positive control asserting that an explicit '"kind":"zk"'
-- the default class -- is accepted rather than treated as an unrecognized
"kind". The suite is now 29 fixtures driving 30 "host_behavior" vectors
(vector set 0.8.0), published as "@bolyra/evc-conformance" version 0.4.0.</t>
  <t>Implementation status (<xref target="impl-status"/>): added a third-party reproduction
record of the authors' bounded three-input run, and cross-specification
implementation experience from the proposed x402 authorization-evidence
profile.</t>
  <t>Updated current reference-suite versions and counts; historical results
retain their original pins. Existing main-body section numbers are
unchanged. Sections 12.6 and 12.7 were added; the previous change-log
appendix moves from Appendix E to Appendix F.</t>
</list></t>

</section>
<section anchor="changes"><name>Changes from draft-kondoju-evc-00 to draft-kondoju-evc-01</name>

<t>[Note to the RFC Editor: please remove this section before publication.]</t>

<t>The -01 revision retained the wire behavior while clarifying existing schema
and host semantics and documenting implementation experience. The following
changes describe -00 to -01 only:</t>

<t><list style="symbols">
  <t>Denial-code registry closure (<xref target="denial-codes"/>): replaced the -00 sentence "hosts
... MUST treat an unrecognized future 'code' as deny" -- which was ambiguous
about mechanism and was readable as relay-tolerance -- with explicit closure
language: within a wire major an
out-of-registry "code" fails the verdict schema and the host fails closed
under its own "schema_invalid" classification, never relaying the code. This
also resolves a latent internal tension with the IANA considerations
(<xref target="iana"/>), which already described the wire denial-code set as a closed
enum.</t>
  <t>Fail-closed classification precedence (<xref target="fail-closed"/>): stated the order in
which a host classifies co-occurring fail-closed conditions (own kills, then
unsolicited signal death, then non-zero exit, then parse/schema checks), and
that "signal_death" and "nonzero_exit" are distinct classes a host MUST NOT
collapse.</t>
  <t>Host conformance (Section 8): added the "unknown-denial-code" fixture and its
vector; the -01 suite contained 27 fixtures driving 28 "host_behavior" vectors
(vector set 0.6.0), published as the "@bolyra/evc-conformance" npm package.</t>
  <t>Implementation status (<xref target="impl-status"/>): added an independent host
implementation built from the contract text by an mcp-use maintainer,
verified against the suite at a pinned public commit; updated version and
vector counts throughout.</t>
  <t>Corrected internal section cross-references that had drifted when sections
were inserted late in the -00 editing cycle (the denial-code registry was
cited as Section 4.2 but renders as 4.3; the fd-isolation rules as 4.3 but
render as 4.4; wire versioning as Section 10 but renders as 9; receipt
signer discovery as 11 but renders as 10; security and IANA considerations
one low likewise). All corrected references now use resolved anchors so
numbering cannot drift again.</t>
</list></t>

<t>Both prose gaps closed in the -01 revision were surfaced by independent
implementation experience against the -00 text -- evidence used to decide
where the specification, not just an implementation, needed repair.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA8W963bbWLIm+B9PgWHOWkmeIShS98vk6Vba8klV+ZJjOSvP
6apaapAEJaRJggOAklm262c/QT9hP8lEfBGx9wZI2c5T1WuqLymT4Ma+xI57
fJEkSVTn9Tw7jzuXy/jqQ52Vy3Qe/ykr81melfGzYlmX6aSOZ0UZX95lyzq+
XNf3RZn/La3zYhk/zyZ5RX9UnSgdj8vsgUZ6ephONC0my3RB75uW6axO3hfL
afHbOskeJslwP5qkdXZXlJvzOF/OiihfledxXa6ren84PKPv0zJLz+ObbLIu
83oTPRbl+7uyWK/O4+vlNH/Ip2t66816vMgrnlT0PtvQM9PzKI6TOOXpy1/h
EvDJg84U//hbVhbJ+2XxOM+mdxk+qrJ5NqnzhyyZ5tVkXlTrMosq96J6s6Il
XV+9exFVdbqc3qbzYkmfbLIqWuXn8Z/rYtKPq6Ksy2xW0V+bBf/x1yiSqcgE
ZWP+lFeP6TKd3qfxz2Vap6v4j7JJ9EwcF+VdutSZn8c/FvNNmeKLbJHm8/P4
gX/9X8f4fJDmUbQsykXKM+d3vH3xbH80OtM/T0cnh/bn/hF9GvGuNx8/Pjm0
x0+O3C9Pjo/37c+zw3033v6x/Xk8OuI/r5Png/fzcpKkObY/4fWeY8KO7q4D
wqL/5hOhLNrGJq118LM2AbUHT4YH8hyR0nm8P9w/ToYnyfAYH/rd5v/Zjv88
iP+YVnTEi3TZ+ur5IH5ZLMZpOS1a3/zHIH5bVMUifX/f/urHQfwsXazG2Xze
+uZyEN/UGdGSbs0qn87zarnJk3RVtbYFe/IzzWtFZBPfbKo6W+zcgsYgu5c/
Ov3S8u33UZQkdDnGFe5qFL27zyt+2XrBU6lWdNXpjlQxHdOXWEX36k/Peudx
GleLdD7vx3VGd2I8z/rRqiyKWVJhKUl6tywqOu14XKyX07TcxOOsfswyOvn4
nr6Ju/we+sldmS5oVsW6jusirtP3WZzSUHTd59ldNo3pnUwvIBm55N9XNNZ9
Op/1QEX0cWbTtYsed2l+6zENP8mqKqrv0zous+U0KysMM58Xj3vTbLnhX0xz
WpaMX6zS/3eNaRWzeEwTn2e9QfyOZjrR9Ud3Bf1kWdEP5hvsFX28lFPk2dh4
2fIhmxfMN+6LRzyHVd/TMxVvXr68m2fxH27evI7KjN5ZYfmpX4GffsxvjKt6
mi/7bjT3HL38kZf1mNf3tBE0xfkmIvaEscPl0QC0yX3MsjGnfEm7tyqzuqLf
5zUtdZoRF6vzRUY/qPCLiA6bmQcdCH22osNa827ShGfEmBLmmfRVuZ5nvF1l
hj1cZWXNFLXgQ+XXGS0IG6VrR3d/zPehO+q5TUmq+6IOl+83GGtMY31buMCo
mtwTj7yIu/u9xpSwwoq+YtbDxE2UQHKGFj3NVkwRy5rPUYk4Hm+I+vg3CR04
uOVyktFk8jq7wM51D3pxSOixEXpeLVgGYJ0V3TxHAST2ypK3YTKn6078b55U
+d0yrUnI9FvSSE6nvs/LabJKy9rRZ9WPSDTVtEHrvLrnU2Dy49ku4zc/v7t+
8/ryJYuxWUJnNynzFS4NEch8OojpxsZ817N5Ps5I6GT00yXtcarEjDXO6B5m
LHL78h0/nt0Js14QRcxlbvLdqpjnk008T2k+dCcH8XXNb6C1R0taLVHXVDUH
f/+JOVUZ/aS8Y2rG5lV8E2Om/5yOhE4GPKEggoyLWZTxAUwyZk8DYV6LfEo3
Moq+I4WgLovpGryB/v0dCdOCzm8RRcJZ3WqqmH73iucPFkacgh8lgV3M4+6r
Zz/3QCFE5PSq+4x5Y12USvO0+uwx3WCIfDkh7QQUSpuX0QnQdeUHeDc8t6oL
GnfCq2KGYtcc95tFeoRNov8PjIx5G6k0NKCpLDJsLfeFHxPmV+Z39zVt/eN/
id8V03QTZ+nkHhMn5pEvVnNsEvOVcUY3hX5Na5m8x4FNSIGaE/XlNZMHD8/M
QTicqANgcHwlKnpFBG7AVxdM3R1xsszWtDlzf550XI/3+eTeGPqEGWv1PuTH
keNStIP8WsdzprmQ0nidz6f8LWugqaOaAc70V76sTLw3jl2QxhXxJ1XwyTdw
YVwXks4i5Ph8No4xRw3G/FVm3HW8tRj/ljnWyryZFZz46s2LXj96kk13lUXH
T7PonnB5z4tBjMaOlXspy86mxjKyBtujy5DL5VWeN871KV4tTjwKpZyRB9GA
ysC6cI+fC7cJ9uOBOCcdGN8DGr+IIAxwJjyQTI/lMd0nuqPE6AbxpRx8Oi1W
tRyZiVRmY/MsLZd0WYgO1iWJh2xFW3WTCfkf9IwnNci2SSPPQ+529WEyX0+N
WKZFVmGAaTbLadvpJjPfz2mCpOCvmf3h8Py8w/f0ldupMk+T7Ie80cmWPtHO
Q6HqLanaZepWz9yFjmkT//zHa+x9lUWkPxa0Xt3m9s7S/2UKnP6WTgLtTAav
SKHNshXvVkOogmNAK1NeTNNkScN/VnlFVheY9CPvGIvk1ik4GUh7SPyAlSa+
0Ku8xFvTOQkSmiaLDjUiAiqjBQvHcgol/b2a0+yncZbzeERDkbv+vELmjypk
eSn+pogYeGSRYGtzsueeH+Wte6TVGAVsWByETIs/el08so4bLDAXIiCVZGps
sFwv+V7RmTwWoUpARzkjlshyEeKB5BRx/+kmoktJ01duRmv+Q/qQ3kDext0O
n9Ke+2WCm/Zb1RE1VX/wlszdaOejSVnt0bM09jRb0CmzKJIz1h2RnQsuNnPc
cRY5AcDaMt9yOkj6M2e5XTLPZcV2mQXSmreFDMplTf+PT2bGoiojhYNuT0RC
kekfvK27mKxuIatu2QC9ZWO9B6ZdQ12ezZLxhlSOWbqmT66m+0dkRZJMustl
+sUykasESSnkqDKOicWOhjT6h5GXLF2+lVn83ej0IJIra6RalizfllPel2qV
Pi75vBPPpuesOd6nq6x3IfuG92YfspLkSlZFIcHTS5XZ7xkLJrt/RiQLPZMN
EqEHfhnMg41Z5JNiQbNgvQRbuXUwzKIX2YQ2XmRNU7+MA9UygmrpWd1pD0qk
iFSaYcjT2eh5yOnqsGIgEh5jqqa9ieTiyoHj7lasgJM0jW9IIU/nqp1eG73I
zSXhWq+JccgMou7Hj0xQSYWPP3/uyS37uahy/p43g4zCin7xZjlnbgpVjOkZ
o3Vf05m/Ng7RI33MCTjmCFDaWD7NZvjxrCwWID7SXPlgmCCnJpNWc3oLrka1
Xq3mdG+jiepwaSDNaJseaZd5mybv+dydMhOXTFJJTfcT7HTZ8g3R/tDk+BDp
ceyq15GVTiqxOkwA8clnZMSDP/fjN+zCiPcHQ/rX+2zJylOwFx8/qjPl8+e+
6kpEv8X8gUW6/ILmzhvNt5TmenePWyX7qsQZycSbIxNVQk0W3V7YC37UfIwZ
xKQAz2KLXbY1wqekpW9sEmoVBQYK/gqsaSPPo178kM5zdj+QEb6JWJZkbJ0u
MlJwWMBM7gsiVhKGpDCTCGZy4SWt64RMpjEUhNYU2YkwXtdOFftf/+N/uhdv
WxFeT3HaNR07qxpeRcs+8NUjRseWAmn9DyzscS/p9W/F2hCF+aWyRJEU77NN
zA7FKu68+uXmXacv/41fv8Hfb6/+n1+u3149579vfrp8+dL9YU/c/PTml5f0
faR/+V8+e/Pq1dXr5/Jj+jRuffTq8j86IuQ6Zs51TKZGTqYyXyFyGDcUQLrn
sRh9Y+H6PxIDHx0K9bE/8PNn+ZsdgvT3I2mp/UhpZiP/5M0nclitSA3jIViH
mKSrvCam0ecXkE3+uIz5Zg1kryCey4ymUBknqbaVAJ4wlFyZwP4RTUb4ybuM
xX4xL+42EY79PDoHM33CJRR/m0vIM+QoFglRNfQr4q7CSuRjvWOy82pvuh+A
aQUMmCZuw/BkL91UnXDWF6YgzsCBUYCQpxlvNli03UVv+NFPaMZbi4RlzapH
JfqKWidmc2Dej2XO15G/97YELx/WBM1a3oU5t1xcJKX5hoqHYirn595iVv0u
g6D2u2xXhH6NW816MKYErRfK4pwWyPoai4xddoQ3H2Cn0qA7LAjsPq/OKCXw
oZkt1lCldV9o3rIT587113d/gbnT+yBliMQz1jJZ7SPuX60XcKOI9h7DXWge
KDLLsPcLOt8UnEY37SuTA5n4iYXzhSiAHam3WRX8XWShqry7I46MaCLGM20m
KiKVuuG/IylGOgfIkz8o6cR4hqSozmqmTrohGzMvjKTgaoXL+wk7k17dcIxB
htgkJuVmVfNtWZEYpBEWeZMQvBOjD0Im2uw4ccQM8m/vO3wO9PqOeRc6oVxi
Hcd5v5gRjsU765xj7kKzTyzuvCdtvzMQ1qNHzl6ueE/Fif/IllCTiUAMb55u
WKet9c0LGOhuIic0keuljoEBGyRZKD+iZUzXMFb0RRVpFNkFX0BMaPuXxOrX
7HbG4xXcJY6eag5RMCMmbQaUiL+ScUZPZUnqb0xLUe279/nV9sGtMLeNjRln
sPtkCnZD6JW4DOtlToSf0OUnZTPwtMrbY9JMzcITh3+bksOti6Kf+B7+wuwg
eceMrvvTL+96wm3Fb0S/J4VFDzf00ZIpt4TyK3oUf50tH/KyWEISTZwawK7F
OHYKN/RtMfJyUfLNTlL7yuyp9I6U06r2Dt5Z/oEZUwU147Kc3OdMFOtSOMM7
tpXE8ygSs63beJXG6zJbvu+V+SrhjlhzGCDjWFI0CkyPHXKOFVXaF5JZ+8GD
yni2XFBOrCijeooxsYOLw0u4/ET17OuS7wbRgbynzX2fdne5d7HHSDi0iOEP
9MEgOgzmLQIQWmoo5RpCO2/Iak9Wx0xWL9tezFWVrUlL4WvWuEpVzhc++vvf
/x7ReRKjiOMfZH+7trLbyWLqoiP07Wh4OxwOF1UvwpK7+N1Ad+y3qlh2dXt7
ZJRiduEjvUgMrX6M4ExWljTkY5rX8lAvbv9vby+W91o8R35C/6I/oiifxTJg
/H/8EA/Pt37e/J/w/W6HbnTCkQhsfqcnr6EdjI95QF7r9JZepnP6wqg2oG5P
x8/fDWin90O8SssquxXKv+WduhWi6LITtPW7wwuzwfmU+ZIl/6pv4ykGNuZy
PZ9/cd02x/USEwAXls3skL1aEVcjQ00HHDidg6g+rbK4A7WhI1FWJh1iKnyH
iZHZT0R1yG6VVdMzf/6r3zNdz4ln9BqwpVWwjak8V359m9bFQnwIXbyIxrHp
iyyywzJWTdYIxlPh3u25ibP+ovPWIfyEp9k2ofn5jkvisPe8/ziJwX6sHp4N
yzFx/jQGpq3lkNbSdpH2lW/UljsOWpeLFPN1duEG+/TcwgvKnLNJofoFmUze
9cW7rPve9Go+6coJuJspm5WaJuDcPwp7ztmJ7BgRslU8U2OVAC7J6jzupr2d
HBhGMcmp/I6IFqEOeAIiUu8QRWG1qrwTc+mBNo/9O8rS5XFEHcc9jXLw1Gy4
1FRB5x4B507rhrnDEZpKfskh2qJASJfNu3Scz/N6Ey/Sleq48M+V8Ty3GIEI
Xfafs4Yvr4fTGSaF2E00gcAGmLEQxnPi26GthneHyLUoaQaRKGBqaiiBwL0C
lYM/FOVsO5wZqntyKG6z9WBYlASbjcVijuLCH5DtXein/rEOuAbrOFEH8Uh8
rxvWOQ/VVGzufQrfkiyyIqEs5oK9FHvBTCqyqHjolptMshVLrg3oRgmOmGV8
g4ECWjNdMYZfS6ShCWpVYumO3ZL+9aHjLpNRgosK+RAc5pU9pPM1vFs+BpJ9
WOVMiU6/YQKix7LGzHlraUqRm426zDjaR6+c5Ho7EgSLnVPy3IanZ39bT++a
ilS05b9zMXT+RrxuTfud3ynWTi1BCDWCaLDJuiz5GsGlz0rZW90u3os/qYS4
0pBgpRkw6veUACJsh8rHHyx+WMn2z0i0iBZzg3SDSl0mPg1rDlHw8aOkI1Tm
7fhJ1HSfTmMz64oSEH/8To/2c0ABODEoFdtqlEjKfvzLuxfJKc2Tefi0v626
RaqIKDksZVBQZkN/i5tv5bssb27EECJ7Le0W8Q6OxWzqrDLuUZOitmBVVR5j
fkp8H0pQ9JFNN5oXm6Z0qUZ9/rewEfpn5//e4Zf41w4e0p2hpz5CyHQkIMHp
TfxLlnwpad/JuKjxA3pC4xe377MNP7LHmQB76WSR7dnTwZPsw+Gn6EqQ4mVf
gIz542K1rpLDwci+oMc51HLrGCiJCHruz51ZRorDbb4cFx/YYq1I3tyqf6Dz
V/rtZ6zG3VnaA865OxseDofRZxGQL3Cvy8BFScpo4vct7rKsuuN7YN5IRIxc
nFsf5DOovfas7pzLMBES1zzIHWgEZIQImJlwRL0z6oB+8KGIePD1AtwBrMKs
QWgZcI/8sF7q72mv/Pw/fqQncnYxs+HM4YX4dXZXECMSYcZuZRJIvyFCOGcF
g36iPyeSQDwicYTD90cisrYdzDKWSbZY1RvszLbzqmWnMJtlh9MTYevta/F1
NxdP0Ig27tqVaRzYblvYp2R5304UB94d9sjJBZZYiWSWhhdie0dow/BQeCd2
PMWz4uhGyjKMqDorWevs44InpOgm/EffmLckMzpFgE1ECe1xngELtuYmu82D
a4kUfyIVsq4LxMd8pi4dNgnWzmDQkUDJWrwU9Fm1WRC7eR98TJpwJ90bDPbG
Qpwd/i+xKkmTmsgMaa2VyiqsQ9eFRDW1u9fjeq7+dAkgi050n/4tLSWemmuM
ZiqZuCrtWFcp6AyzBzi6/Vqh9lR0sMgsM8JAIMTFVWle/lTAf54+N2FET3+/
kx+ROlqW6SZ2vLRqHTW0BQmuTgNdUM6Vg0JVM0FwiUSPGC/D4W6w23q99B0+
Vh0wmpj1y8oMfZ9iwQEApFdLetmAndO4t7FMncOF/Exds+s9CbWdbS7ISRoc
oHzI3PVS1cKUAq9iQD+gibCLnMwJXhnZoBMxHH6hF8Skqk7ud5Hw0+oTX1On
19DUwRU1aqifqwal+hxHRl2yEXhxpTHGhnynT7FNIB9breh/YDz3CDaIPljM
EOB+LJFYsiFxgElvRFn0nNnlcpKwWpHVy5LhMaPt0QxPm9YjZ+xFXvjoDFkc
7B54F8sXBcgpPkQGUIZMHetqzhNpQGoLfG6p9l/XgryLv5Emks1p9iQ9ZtMk
J64BJvP5c2wJvJIuQ4TLQ/bcaZsbQb3QNZJZkVMg5uF38SV7AELNBvIZdu65
+QdiFeju+fhXFo9wb76BZfcaLtdnPswQRVdC7BKX23bNtrzMfC9FUAVX1Ttv
o5JomzgYUgVpMQmoXr3NQZqqKFzEjJGOl6mLm64cAlw+usePRBI2bqaVyJB1
4VwQms1Hh8XaBd4k6Y7smZEzRWQ/je7XZCEn4kFesrvTP8FhyUDAwMDB0+N0
8p79e1gyfyIeGNJ0O5iJkCmtjExoDnd08ND5619evrx+cX31Nvnp8uanTm+X
ato8QmhrTV8Oq3ngaB/VZ9NBpkppeubo6Hh0crB/NhgMzveH+8PR8dEB/a2a
I5Q/niE/uX88Oj4+PhqNzg6PhkfDU86cOT06PDo9PTk+PTo6O94/GB0ene0f
HJzRE8eHw4MT+m7/4PBwdEafjY5PD0+OTvZP9/cPj/34ZcZawS1nNbHuejga
7h8eHp6Sgslff6b//6+maraXFkgM1d77LnjSl2BZwoRJpPcrn43ShkWiIqd2
wXsg58MBdb5KStfMMMtMY85hnobcV45sr8tlL/A8qMbZjmfEV5fPflLPW+NS
XDGx43PRm4PjeULlQdofntqD+Gf/C08bLLmasO2HZyzm4SirDyLHLMdF8f69
ZuTxFl2IF8OTo2aPxXfzYox8ICF5Vm7D6EfifvP0XN1NFgu9bqincuVV/wwo
4SmzAcLOZCAe1TSVxrAILvFo5lljstEokLLE5yQCvnCh4HrU+zQF/WNnb7MP
7KPMpvKd2Urnoj3nrIjiuVieU29IIHlnMynbksdklClPlYn/ox/mVr6ngffZ
MnO/85+P8PkHjrncjklQy7N0Y/S2JH49TxyOMX4iClkvjgHr3f4FOyH5IfyS
DWc4oRdEvZzEI0k50CMlHC/OVlFZ2gZUaKJc/kfgq1VDxHb1q5NgyuIcor4y
WrFJJCM0SyvJRQjj/WqDMAFx8QjeprvvrR5jIXiJs6umsSVy8SWaF3fV3jQb
r+/uYDo07FTNpMkm9yK0yBCipyQ10imTWVnCAUxCElxFBdykYAe/uHLkKJAW
wSn9uuVE7sggusMnG+ZqnCmItYgX0m1bYyWt+Fgj8N32W1pEG/S/I6b9ZET7
Wo5U03I47UsyaUnmKbVFsXhehOJc0EI4dDpmBt1v8QiXOdSM7leYDu09Delj
eCjZkGQwU/7oKfUO0BC6R94mInsxm6Rr+lVh2n1egYGkU/cSaITPhYqf8Zm9
NQr/+F2DuEUT1PoyOqXHrEQso1qm77Nb/MkZ1+P1nF3pFsizNenl0yIYNgIj
OXTNjtYUDZ/OLL7cC40GN29TzUnbahnRAlib44iE0Bb8FX3RKP1trbRQ6Vxz
sdkTDrcguzScg7AXZUvip2UaRkvlbVqIVWkpAhYFDUyy6swBY+ukiycZri6d
Vd4W5kp677RVUbGC7OOmNB+t7PL+XqZYyz3nLGeMSqYDMgGJgmUAutWSNgiv
TsN1TDKf7bnaigAix0LkG3pkvWTZdbdECYwuiMgln7F+8chXOpXMQ0+cPs/F
Jxi6zQcryCEoUNSYwi20I91cTbSIPn8kgz+BC6TOmUyEFMV1iomC5dB0ijWZ
PfOs1uBKkMWiVUlZJL9tFJ6F7jVEG7QcYSocfEnjiWByhMxxPx61itZLyWjU
gNDu7ZqjVgmWei6cnZ/W1Er5t9Zo7UguZqOozDn/Q+aWypKzqWcqXfhROEsc
eTxiKUw0qzoZDmNmN8iZ78gNItVX6I39wvXWvGdrJEt8z9P/XrIYoSaICvLI
hu1inN+ti3XlnfyWV10tJPctrcBbcK/xN+fn1AXtG2eFXERVJkpS3kx6Jo5F
h4bJwl/fSHke9KLIDNYq8F1Np+z0W9BWIRWpzFgZtGwwCzQKS0jEhWnu2DHZ
eNuOTA3pOH7xRAVtIBM4GBXIkKQpPRLmxl52ltm6Uu0Vlp7UErWss47e41u8
u0MPPaBIFsTBctpeFrmiRSlOYRVFq8wqeA8k7VF/1ixr1DkJCyHu+Um27FP8
KkuRUf4p+pQkCf4ffdnyT9BzkuxojpA9UGsFIur+azyKX+U/9uhTvsnsFtBw
hFMim1GzwKPCsdb5PGFXCd1CfvUODwa9PnSjx7v8IXhjwx3qVBMbJa/CweVt
tvdq434SBUdcas7FjR8SsyumIgbBr5bOQVSUTq2CaQHvT3N4MfE/BVECyeFG
oKBUD0B4RHqKojpwEJvNok3jkYSNJLJ4xFXNN3+PdpUEKdHE1G2HV9bpTmop
CEtUlFHpW2zjNeB6y+FXmqwWe32vkVj9GVmpd1BqoKPiPVqLlWU9OxBvqVhM
VsdOMLaIeXmtL+QygYZXB/VdxG1ovDExmfdcl7dKJukK9DdDIqkZKKt0WVmu
qEY83YfN0/D36FOYbZuo5zz233cvV0ha+BATeVvFJA5h08hGo43ipLjQfpVX
6tC3djJYG4jZxyfkUrgSOXlO1KPQoS+K6m5fMzuC+bfgHT71Un/JPtjgcZkZ
XL7hvHQdOHDOnBCPgcSS3eRoznSjgk1zj7iQClNYXlk5aT5DhVVtLmahNOSm
3AYJEJ984WfDG26hfjnkBSnifEDdQG5e0HD8eTZ1SQTe9w8dPZv25L1Nk1eX
7N+VOHYVeMbZFHXbS4JmvVjPoasStSBPkJVwjfUpFbSMYnk3KBIvFREjlykL
Ugjif/3B//RWKLhj1mkJzRPBoZwMQfFv4DB4k8JERokO2qWWHCbjtsEhx6Q4
vGdxsa4kCdb5/fZIi8DaE3VV8m2Yh8OZg7JFNC0XJ9QHdbtUDDvR9Tm5PbuQ
wqJvxXpkymC1gKdvSWZ973wvSZNMJ1Ip7j7dkY8ziM2Nm1aWNX75+rlljjcy
7SAGeTLRJfJOHuWwa9RG0GRZi+Qbg7T5TnO+HdZHcqnMnPMa6yoYPnLDNzIh
JRQ2OoJ9FTesoQmxeRT2xNeXry99hhfXg6XL1BWCqaN9TzMO6Y/ZNHlJhD+P
r83LHndfFuk0+ZHMVtol9u03fPBaQXJPWppXiSVBq/Jl0N7UecrtHzj7I3b2
+6yUwLxbFEhFSu/Y0GdMBbsvLY1QI33OGmSLgEibDo1zQtnmczGMIOkdbsZv
CVdU9D0CxL44PYhJJ0Ra4P2S08nBJGefb1ilZ9NJF+RSL5bZo9R8Vc43wX6L
14XahThjhFoX6Uan9OQ7BwyLQJwhlPE0jXlOJjDQK7pLbEs//vXy5hUuAd7y
mFckeDlT2r1glsN4Ev8HPTciPkxqP+9EkqCaobgr2ds/Thlp4VEqvyuuexiv
7wxfhE2XzSrV2xekZSdzEJtMm/MOSua/Je8QfNpEVYN5cdchdX6D81+SPFxB
zAhllJKZTuJzPaOlkhVQozaaL3VWwccL/ikZzLyllzsLldULImWzLf2JfXd6
zklm3FzOlCsoaIeSYIewIjMHrPDYGzpSOIl8cHeJjJ9wEgFX7cbeQ0C/Wmbz
c9WBJAnRKpO4vu298+ywWl1ATpPEnMbD+Aen5eZLpkL6cEQfkpQSr10XlQDi
rm/sEtxuvT7/YJ9+kC/p3zkzQc4n4AJ2MAsQNs2GnjqgpywJQrcvnD1Hgzdx
mT4ydxnZS+jIci2M0HWof3qc+Tmq9qEvxuvEtrfCY/tO8tp5Wj67RZwS6eQ+
ip+8KO/86+lo6wa38QVYuPdY6YVV8ciMtCJCf8Y80N8c2m6mt+vZl/YmCNZJ
WbEhwsiPiD54/H47Dr/t+Qkity3Z0m/KqZ5PPOENMgUHtUAkuDgkhxjsfSp6
PS+Dw/k5yr9BuHSMdDjgA7zBlvTBtA1FAqNJdqQ6ZrMyayyIlZjCDFramgXC
/RemBPBbvIwBdoO4HuvGrdrN9S0MzH+Q+UTcREpRGlXdXa3RUOmD5PHeeTtf
Dx/vqJ+Ab2BHPYSOhuu8LKJ2Yl0776qrvhTxlvRjL9zFIziDRNL3WV4B4nJi
OYqN46xk9eEzZ5iTrkQv3nMzWNGukWKIoiuwyg+knbCuJ2Yq5n1BLyOdtM5X
IssZ4m/JuTJa7MFBqorRuOasyix11zSR1uoaNe13lpdILNIdceRGdL6uxPXF
CdcanZT0ndCFxWEsKEQ9npV3mQqv8/Eb5wZYqj/dQjdLF7vpN9zqqu25+NWe
C6oMRHOb5uasEdws2Et8ciLRSBpxYENWdFdougLdtAESAgIXE3YnUs2q5c9G
RqsIaYGLi5+Ju9U5eP87+3/+uxTCPQ/ypj9+x1+Q2vWj+ubrVh7+V/xOo17f
e5EaebEO20rnWDnJp84zgYrgQJMzxVqlgDAeRJeK02gHRlbgqk13+5Uy5eBp
3ELOEtbHLKpakf0uat9UUAjnTtSFgEGBy1xm7JIxxCup8tQjmYhgbWqelvss
VD4Xzdyj3whfn3AZISLbTFoN7cFcifD5itO5kn23Q9P09y8WN9qLQ4f5nM0L
XYlEdcIc0H7koCc0/m1ag/dw74BuKvQ6z9JliKCUTsqiqqKKVYYAmg8eyAmi
AshPod3sq5/fYQc0wi46U9LaQaYC5ueAJMS1rahRtvIa6DYhq3WZPMKRztkH
CW/pJ71SYdEqfXgl7tEq9Eyqd9KRKD32zP29WpOkmMArJgSOeKfRMLMFhI4M
TGhPq4zZgVohw7FJ2QOew83+0fEfE/XD0HZldJ/p4T/8+i50UNnA3pWwJ/4K
iVugYDV8mxi/f3tPb/hvzds0ycvJOq9ln/m59gPyBRiT6SZ+Iv0wNL9iYc/C
oLJw8q4sn8q8E+or/USa9q4r7GlU6kjDUAoEp6XWafY4znKA4bTCPKjgyBpA
VE/WBxnkUlAdxIY6WcA3hhYbP3dosWLsv2AJloAo+vGblRjnDDKRcbYfxz7b
yBpw2lQhWCLAeIKdZDLi4+yrW7H/xbypBjSVQPHxmrjqSBfKCavp3OpxFT0h
Eq5IW64yBzFAKQJPa1KOxuva7o7yul2YuWEiqabQ4bayC82uApKI/PFNpICE
7UEfOw6gSPwPo2XGOh6pmPR7faeFN+SKIKdAUpJSjzYL2x0RNhfoFYjBLUhE
bNd57CDDxBgQcMIWanDIrwW+JHele5KQyZQgh02Gq1SZ0iMPeSpM6geJtntm
Gz2mnIa/LRualqXIOc+i5Vcpa8mciuGEJu56tEvsQZC4uuInJd1WHRuNsokg
EQYK1IGZemkHhcz9S70s2xfPueXB9+pIH2zLN7poDkYofruea9G76DgRjHI3
tuaIBBkJaujtEHKD5k+/XAaBW/2FgBu+CTMmfmdmRDMvopn44pRCNjLj1EaU
vC9GAjRTGIItWWSLMTuf6d3puGDDKA2sElgNsL5bsWMZFOv0EK9hgXXDYgyL
qpP4BXvIyPZj4zq2wDlufz9Uv5Xx6KswnRaCjZjsCsMRbsculsl5Gd6Lw7mF
aj0gzeNHx0IUnsRiXczJgpiJphG5pbUUQLG2KkgCmXgyFm9m4GlpB3R51btm
DBpbrBFDZNi1uIGxaRAkmkyALVCCxuJ038KEisx/fu4zav5tTefAxhsZXJfT
B7KFy038KqtTWn7ap9uEuGET4P2aA6y9KNKX8BW2Xy70lxp7l/CCYCVq1adI
AV/aaefoFs7PIXIecGNNd3DmWF+NKhm1u5323NtOVcVZq6/cnCgBWqzhuBl/
hUnsrtN6RbYHw7eYeScAWy5/T9OO0yqHMJaduQhH4CSDDyANdx+eAEXpGz35
iGs/vOMqRDVuKGtmJNK5KiJfmonz/QT6eTsVTQgRNlmrNDaYRCj7FdjXqpTD
ImYrSTZrc3ctMghZalB5FImIuVTGJrlYna+AEAFUH2URLpmRL7I+pHmCdxaK
BKbSUnPRnfsGoJIuqqiI4zDWXGRHtWKZAfYHrqpdXDF/kitG2860ZpRFuDID
EK7F8+iKQMwWZCc588/13d3G3xiaENwHXklA4cwCVVMqcHlIDsMK6IWZY3w/
6SSFFbzNxA1W3QvyHe8APqOZXP58Ez9naHnRikr9GGjz8cePW8D1nz9vAahu
2eFFGe3UB8N1MXbux48YsAfcOiJWs1RTCWPA6Rd9TQVazdd3SLDAvXVRiMSr
OKZnQIj3GY+SDmGeiRUphO0AopumpCRdwNVyxRG0Z5KC9y7EQpcClhd84Z/J
4b8JvIQfvwtYQUIm/Ip4/WecCo8oCY83Li+sa1GlHjMpvLMz1MCrcyarizAN
ABS7Qb4xcyI1K9X2FM6GCjHnnRRvm3oGzbfkAZf15c7v20pyZRzpuaM0ngO7
W5gF0CbW9x5In52TgInq+l9Ay9FCZP/pvEinPknHBVhxu7d5Sx9AFjWD6hbw
HLkMG43VElFZuxINESnSVcVSRfyeYI59C4f3kZjKBnLfMY0epArULvaEVwij
bCRaywcjVa662B9covc7Sc0nQ4wl5Pl2sBZeWBcXftrzzrHiKBYQHHcYjaJ4
DUpmmXAnSRmXDG2nsAn5KZ4FzlVRPp8XHFmu8VslBS1numxri1vBavU5MxrU
Uko4aIzNsuZEcYE5lU223GSmVw5t1FzsUbjwCaajGDWST+hCsnZlLzA8REeu
hXEa1m7lMt8thf03aHq1LjlQYIN671DoowMIOqcvcvaoR9AtESsF6NNiVWvE
SIAegvYJqvugKLRVEIqNFx8VhtCcgNdFazMFUl4RMreohUu6efUbVXSWEfbU
w0VYrRv0N8EqqXZhRygOz0XzLjt+7vFT1IPSKng2DH4OHDbrJ3kCqqCYYmCh
HigIoCBDlhDCkbqeAPjSDcQ5CcN4OBzGC7qs9GfVu3gCHbrm/gF1pUnK+zG9
rgZVnJ3RrSCVmvGyc86ToyvDI3FcAzY50h3viRMRD1jsKu4cW2zDdeQA35J6
XmZeF61Y0pxjUJg8ZyDSxOPh4Wl8dHIswZse65+G4ooeHpAweMu3FWa2js1H
RNZssEcw5jCeT3JUEqGfhQLqhqzChmDagpmQA2MsU702s4IpDoqZxZracpR+
0M1nDsykFyFymk0Nb5El2na+CyuwdvBBqa5M430+n4cRPY2iLDf8q2nGyQxk
ZEhSULwXT8q0uuevAiynvoW7XJKopOxwlMpid8oxtopDJXK0tByxIGikZvd2
VMhLMLFKmrEnwSwzFUVy9BtFCrsqAprMAV2LdqmnWmKcWgJ46BMIyihCsKZt
+AUHTU9am+arBYlFzp1DZHWjjnyhD5QnaLytUqDhpJhM1hK3Upg2xS5cLzlx
mc/Ws4kIYmyaA0jYThQQUHJf9YiCg5U76yCBc5deVSwjQSiUuIGVv5jaw7p+
M9ld6xSs9qFZutBn9i4GuBU/KNogHAs52nZIvN3wbrlqiB22LPmNnr8XjzQv
utLQZldTW3BltV2E3oSe/hO0VxUQKHyRZFtA+PZEM8erb+jPGx3v3slDiUQj
+0OIzPz/10tI3XzCdTN9d62i3S8Xj2NLFQiAFgI6YGB7/OgWYyowA/2Uf3kL
bLknykUCt2ZQXzafk7nA0pRMWej7TFbNgpQBCb/6fguv3wu21gFd8CqztISr
0+P9C85BMzfA3q/m7mPhKg6IErghy3hjgPLNTkFxl6sOduCoN2QO3M/quRb1
jk9LXRoCzcz1HIprGBRDcIEp6D0yKNe81oiaKIFjlakhNpMyLc0asrrEbTQW
gU1inRh9ctSoFeBsKcP9UcpwL7mHWOBI1dR2Xzjv4FIFI7Wvzg6foSPOPnUs
GGhTotipXcWV67UkNTQbw07V8aGIcZZk0x4UgF+4JMbrculis7vSRfFS3thU
62Gbte8qE33BPI2pulkgvpv5qZ1BfEPUgInOFF0N+SOCqUZPFRv0NtJ0H5Qm
sjorhkd/h+z/3dk7aknAW7sD+8bpgSuWlOZ1q57eSoOh3VEa7z0gh4P9ntQ8
SoX2CrEF226X6Sun4TcZ9p1kE3RdaCqMbAE0AITzNGwANpodySFWgDZy851y
vI5slMQ7z5CvolbKaeyoO7cGZ96OWBiEqOgX1t2EhHdVIxneHzTvmk9rEurX
DOVCwuzsbh2nlWGs6w6AQEX/oJe2asixu10fL+w386elncSyiFyeoqsSsEp2
JBhU6OXD+eytc/3Ln//y10FYRi/pIuxqmkZWAZ9A72iXwbM97mKR98WKfcts
+WuBviBT0Gxo01ZRGLZ0p8mwPaKUF2G00pYoW4MVeleRey7y49g2a3FT8C65
rGr1fI2sdhAVqjwVPV1g34V7KO1MZa39AJAi2g1IYX67No+Nu/A2CVrIK7jD
o19N0IuCs25j/+6ADhGv5yTLWbUy1xECD+173K4XbmJAO7RTfghAD1s4z5Gl
LjawrQSymCNGmcNo4HG2X+8hT2MFle7g6YHhKSwdyAmgU+3qqmhr4lHvxR1I
8uVsniPzkNX/jqvL7CuygVZ2AgKBx9Q3NkAUAKVMrBr9lTC6lWY8cHM8Q1PH
NECEAuDPwMjXMJJsOTYb8LnUjiksWJDUmGza2z4MAN4q9paihqWSdQNRKI4D
Ph6Hgu3VcMPv1vMnkuu81SQc4L7rEmgz1Petg5IVOCX2r7mSL968/fH6+fOr
101hwgAsSlcNFHMJpzqDgmsvQUmKLIUdGWdIKOaNhAICkn8WqFUfvwuULLVd
XUZZDnZm7UVbAVzolbvaHAoDTz0M5bd18BlYzKeKD/vxsciUE3ElYSj2alqs
sDFkgO+GdPO2j6Yf5BE37dQImrx8z+JczDoXQNWwUurZTiiyttoZcI1/MzQp
pn6rHZjW0mVLEBL80T7rQOFW04iMYGlLFPpoVDRKd8P4YT1fOlw1lzyi6Pna
hozddYjXNvrW2ZYrDABUa5eS1kjd2DkNxWdncpTjQWoNJx83I5TSJykAL4NI
gyaQ1Kgbhf6tTUCaxQDeUyb11UbdrIAZIpngL6NpmXD5V362iSsqeaFo8rJY
w5YHIWqnXbNWJptkBlAqJHiSogiO+pDDi9Eql3Fta/3Gavz1rbkthPbFkuD6
3/l6sbQj9CkzrvkUd7/aXr4FBRT6BilQ7cGaNhrKAhUBMDJM7zbYgEPpHxyo
IZADxr9AP2HopFW8f+a3C2eIJgHRwVDq0G9t6h3FV+ZcOY4sIKjHIgjN2Pik
E31gwCg2HdjyytQSFVOJasi/IQot9IXXVTB49Pec8Axulpj0FAUa1BYpVwX0
ivPs22AT0ncc/tgse7SQv3BywEPjEVRRK83En+I/4fQ5XzHeebCWq9jOZ9Sc
RqC/YZ+yqSr7n/jOdz0NMyEV8178yUAb/FNbI+AufG0Ab7746sRdg8n+s8sr
CVMvdw3eV9fYt80yGDjIQPynjossy90jOsvcuud95RXMUZgsE/XufDI3TzOr
P/4U6+4HnrNb+w1X3mq2fmJ59J9AuY3cfZfN7QazX93ar/7y5AvE2ZRoyC0x
R+enwJlqifeyxCWKuPEa/U8TYkQLtZebRF2uieZ/fGq7Ypma9jQ3/4ujyRFZ
pUNyl5Zj+Yk8IvMSf1qjHuOruyuo7jagPyuuZOITFLhmGctXOn5tVC3NCObJ
Y+G4tUhDtfC0sYCvDSu7QLRfponL2/tkDgZ1GnI/yi+6hr+40WNShjTPWr3W
5qV2d3nvb+/3gvv39Fhw67cYMY/bdkQ8GC8kEXXNXabPR18c10VdmmPHWnCs
torRmLeF90Lz4OvE+9Q+Kw3/Y/usAYsk9Pt/aoB6NhyA24A5T3oE9bWGC2Oo
MDtngf1KsF/byw03E6il6BNdpt+2wHBoQFwAtaM1bONAFCdDke++MngirvmE
Ky4wqJah2rIlHq9jdBGlKrzznnmoRrR4ODjXaQvBrnVE/SwIDBFz4e++edSK
L6tc2VUK8N50ivrfBteSZGTp1wyjTqJB7tFvepV67BMYGxjGKQUhf/EMbLyu
WxECe5NLixrs92I38q08gyIMDgpxF1kNN3xqh/lQHeGliJ1iEGf4kjDCYwke
a62EE1bnGZkUs/kaBZS6fziZMA7SDjsqrw2X2ZoPv9mij8lsXhR8X/Dfygdn
LBE1iAm5XZN//V/YHd42G2ybe2+xQ9Y2VCPdtgZFuxCVVKJJsmaTwM4jhufw
R+g+eeq1CdSD3S9PZQViHokfRC6rd4M88S4YQm24Ma/qc3hGMs7mG9fiV7O+
d6X0prVGCZEcdL4zzNvfDu+2S/76AW+OwrqNpSTmwP5RRwjCXzKcw1RNWSaq
MBSjXRCZtrNcBeorgMTuS3JjM+osm6mA0I6n4lOb3sbK4zzjbPyuUYcQNHh1
lZlEclkZBYhD2g++CUASsGjd836z4l7CZr4jxlajt6BZqyYnSlM3JSmmHZ2n
Nstlb8+y76EBrL1X0O3Nl7Tly6jZQehb+7vFwVSCXmvisGDps0IrSxhnvNGc
NLteSu0Je+fUv0ILvwo60mnug42bWXZh0+N3X5B6LGC2tEO3f7p6C6fx7bNX
zzVLEGqgYPd20/LuodcaQcJrqTTHMceH5OLErYgrn2ed11zrE4LnuF5yOol3
16+u3tB/X910bBU7soOas9BEIjfGq8t/v71595yH+fE/3l35kZTDNdjizqEu
FBZWcvIVhnh3QbB76+s3r59d3b568/wK7+sg7CeYrTx+p/Xgzbs3b690mxmz
QekGmBpuTgBZ0+3d0dRRUFtb/njxhGOItESsgW+UegDxKzg7xQsnMB8JO7wW
ubQh4CSIhetS6RD+YV0IcDd7YzTwUtXmG/dHKi9hyq/ayPXiZxtvpEpKgOcB
dglfWDpFQqtgWTDQUj63yV5o3hD/zSeCJtdZFfZelBr0MOWvVfaj23/5jAtb
b1+++bfdu9/uy5ECKEvTFIRjLlIgNGAqEqhbBLVh2nM38KLza6AwWbNLFl/i
hqrWE8Ef5sxvWtiC9OlcHI+qC4hrHeJCWb827mo109HaQsuGQxhR51eM8UJt
6P7Bw5l2UjaZ8+UOce7268X1v7/75e3V7c/Xz19cv/wqyZrHbpXepR4URvP4
wnImdU6xGqLobV78+hJeeiQvY3r3RcjRoF+oo80WibdrHlAjNuF10T3TdeSO
BK8251oaFOSv8ikoMK+sM3hq+cDEbgU2sMlod/SlbLW/DALZo16ImGPdlITJ
S/lhXge0qEAjWkXW6sUk89mZ9bYNF+SynAKoI8tBFt4dMjpVTNXP2vptX1q3
NdOSfDaeVUpJIZzsYTP7OMha8zd5OxmrWW4dSbm1TRD9EyDGPnbsR51zvSyf
t5LNzQzuSnX4ji61zs0unWjTyodcgdlGKl7vAnYcPE2KRO8aily0ZyKwD4pP
3nnGEuKzwp+JP6uFPms4EWoPI0VPMVovWqeLCqi6TlHe1VHqvJ2Ii5yLGOK7
bLnOw4w5y3jcNcXmADTXl5c3N34PRdWRc2wUJZWR9WfkPVKV+6LRvS+d04WX
Hg+WIzTQNmnupB2IJBFJVauS6BBrg5idSrYLFc0Kb1G7LiUh45fY4kLwXawf
AIp5WpIsRNa8/Pk66K72QkMIBooh6a5hmpkGzlUbDIM6/ZBBWDjo8Z4E8rqy
nIJWaMIpgJZfyIEEl2rePCNl9Vrr7Q5pmtVyGMJ8pdw80jgOW2JBxR+fvXgh
GSQHlS4KG+wiNEHXMOk5wOljCEupYA5jLMYruJynTO7KFH2AZOmG0dpYBBlp
L3apVi3o1qZ97wma/y09A4Sl8LPO46BKvf5zxmbNxZaosIRgb9WbsR1cm1yy
y3YnMoqfbNtNYCpngJLj8HEkmt/yAUc7/OFuFMsGaTZJ8Wg4DefA9hwMHtKn
KTX8A9G2/4ovCa/JG7yKwVtvpxkLKKga+Om261SMt2YqgnJVvJo1BAeX6Kbo
S3rE1ijUYmvxdBQGsV1vNboGDbJTZ38iqRiJ8VJeDHuLu8CmU87Db254ACWl
RX4vPOpxP4Q0URobw6AFpXxjajLoBcnG8LxbBI+U8bs7wVCWYH60Xnoga7c+
y+/DKlb5sgEjhim71rcS1AQWJHvaOOhu3EhqALshojPnK0jeeFAdIE6ozjb5
dyLW/LnOgTQssayM43VaVNoRIgTM7mye0iKnvqidQ6XBvCaWXsVgE5WG3eO7
dKX1CY9FfB2k3751oWEBROLNvgGIyUu2eTgoTr8IE3bbCb/TbFFwOyTWZ5kh
a77BuRJN/If0Ib1BwJyTlDng60ZA0h5HdHuaS40fvOWin52PJmW11+mrZNIM
/U72MEmaj3U0GNTTFGXGMhSey11EYWVdSOheEla4iYZrRBdlnGEnTcmCrISt
HBWfsgwAdLaVNWuC19Ds3WleEq6x5SMZMwhrMi4+OCO0dmkWTlaVwE9HczfJ
K962QiROHhpMuVnCG1cA1oVKhlQITsRsFKFzVmNaewg7S+4KUvEEabyrvItH
6atUIDu4DGpiNcuzka2mPyctrRt4JWUuQLZzaB9YthOMTi4yrn/qfO90lpyd
VQqwiijOj9YPQi+wmYHBclTLz0N8Y1e4rHYkb2RqqTGwXxkGU6+YJNzfrfMK
6lGn6cgFshmXKrG9KJ/pA33hZ1umqmUBgnsbzonEovPlb1aXLuWyqV4qOhVP
NqowKRwh3c71BNmxaS2FOUmVzrI6QAgR+AOrgA5yUsI+SBehG8Ln5jQsZCYX
3xwYGxuNIXhLOlBfzVcZkkIDK3fiirFkmprf5g5VY2RRAF9YCyammrro4kfa
MXJ1UVrpcImkJozWCzCVEGGGk74i7ShlttKjXe5QcUYNuNAkqp8sSRvTRn7c
r3xSf3LQE9I7z3AohFfqB9bLcY5OyXXgAWKzpRT8o2YulX+Es52l2QlddAXB
dB2Rhf1IcE26HQSG8DZWfsOojszP6XR5zaa1WSPrSW6SvoLBYrRPrAhr3yO2
kdDmyhAgkPmKiYPa92khi0T0Q8Pi16HyKvpaK0NeoPUs4+hyUe4JsKyeIl6C
jeXwwiYCajwSE2AZmkfA+RtKp585qypnOWBQNG71YvLvKuraFbFtVdXusLQC
r3wEo08yJH1tRuNgQQjnuEOMvoAWGIbDgCYY4iScaLpnGgUdMGTlDIo9zqbT
bGoYYqYmB5Cu2vhASYEzyf11iyxjNzESMdSIZdOT9H0lhil/hxkY3lSATiNp
/CQFwRQeAhw9TSwxd6m2R7UMnWmhwHeLld9YT/qRHaZBVqC8M+jeESI1ax2x
Nk+AuVwFr1xIYwzSVf72vsOFpNh7NaWDHjWaic0ZPAKuKpmTqDqE3szJjyUq
tOkEuzmpOK3kzwIQtjplh/sh5YfMqSBIcaCjFqINY7xxiCMSeSkBqLkVCC5C
KBwaVxMEA6hIDALRRCOR8vQgDgZ2sto/kvSRWYGoeKLSXyhODC8l3vGcPmZZ
pcWcmHq0LBIrmrS3O3dNH2W+qvQugiZVzM2QQ0lKf0o2h9Z7A2lrvjnfZV+5
nk90cF7k/OyihOcMmFtlnV4/iEt9DaFIxqZLxRjxvvt2o8RUcm2Z0LWExh9o
UEkq3buCjG1fHhaACYGNNy+MU6+aAT3tlhZ6KiKiZ+7QTNSmbR+3dt6jH0Hf
jdXaMuqVDIZghaJhZSGdqrZS7SYB9bc4welK2B1bivgON4wXSYJT35Frh2Kk
LjpSALsECWU28ipll0UErrGLcs//AVwo136hcUdCkKhK0GGaQFgW8W1hl0Vt
7DI/GXf1JcYWLBWZSWLfg7UGRVKORpVBNKQMUbhYNtIvEnx4vNm5Qxyzwrwj
gyz2jZ0LQyt3uGlyGipT75FX65m+XQsS5wHEWF9/ZMaubnijWZOKKqmAbOLn
vBXwzfiGyzVL4D4WYIwfvysrLqZndP4xzG5z5GlW/pO/7L69ed7rK8NnodkZ
IF0LGQl742K+IZMD5aGWj0wEPVnDvdelBb998Sw+PR4dxR8/0p/81+fPsR8h
/uXtdS8KAWgVQNSf+Dwjs08PXbBGBUixZEnPgIzdrEL8QziqtByuiDfPs4d0
if4FDJXoQRtDYttF6lJ/HLcATSNGelIqYQFHw3poK5mdbgO+ReUBHRJtn9Uo
hMoOzwhy2bqS2E2A1Q2UA/OQIsw80+YunIFRC9eQTWYmggiGzEyUIMXS4ncz
7a7WcB2hIolfTqJ+XTL4Jbd1JrWmNOTwjx8r/Yr1s4DtsOUnvR0bIF478G/O
o9TPRapBM1Y9Ycv89O7dzzeyUgGC7NzX9ep8b8/j7TnXP7sYV2CK0bwoVgBv
1wPn0stpBk2Ut8BAOIJ3spEs6QyxwblXF5rX3nzSer5t2H26rFiVRq8qEZTm
jE49unDQeoo7r0Tah67iAnIjTJokuKFo45e++wKfyDWMiaxOgG7Vb0AobCJ/
NRK6GpHqz3pLYaiR1YP2O6lFwv19a/RA2eIObyD9fi3K93BuAUkreT8vJ0ma
oxQxYX9HMjyIu88K57ApN70oErytrWfpKnc7l9fxJSpALz18nhVjN1D8Ov3o
6Xf24/3h/nEyPEmGx33aI4nPQy/pBecuJZPp9puarpqxpE9xOxVUmijTpfvK
l41U51AVAG/TTiUOcZTxB4gfOXufF4pVPnM1rPDECTwv36pfr1/dXEUBJK4s
obKIF288sKSuDcjuHbrTdX+9ftdzBsK/D46GZ+7ZyD37jDUzUF/Gv3hGRO9R
/Vr74ztKco2HzCv4iMGda5kjibqbn69fvLiKr58DzIYdmganPnRd9hp7y9iw
b/hgo/3BUNj68cnhGdECM2B2QijSsydsP+SAiKvzi6AeYZCYB7nEDyPsB+8q
VIdH8e5W63FHfQ2mNLrGZ2w3r33kOXgNme8RXlRadS/9rkmNPWksLDW2fPsa
qxTUNtlOl8e1jGTOTXBKQKX9GyuenDpFjN0fB/xqXEHHbGbho5OuF5UWAj15
E1k5JLOgPo/v8gdEBdXu9NCHHH7QWCiOOkRlRqaXbnR4OpHas4BTajXySxJs
vjh2zJ2LDsrwWDqkpSAcErUoxGOswfkJGGNUtW3V2/4XaPFc7aj13dgQ2sQo
bwDQJCmXvwTYmVD8l3pScAXYTdnmBnB1RF/batapF2MnPGUveTBsH7NxfLQn
u6nbKAVQq6KqYOeu0g2u+BeVjNDUdlmMdPeiFlphcI4AHQTW2S4F3Q0SuLZc
RR2nnDjEQS1oebRachjkKj7EVTYJOb8EGtQESuvI+9xwppXZ9dxj8MIDUosX
cLHiQAFbB30IRPhCkcGLJChxon9BIvjOQgoQJ482QB8hrAwxkghXWPTPtDsQ
5NKAght7MZ6jibE2bKRx9tbPOv0n3uhF1ei0FyF/bFzyqe+q3xXHvWnP8fPr
54xYe89RLrJWzmnEjkTvI8Rq2VVLdM4+qml8Nd0/OhqdKWg/J4cQV9UPE35y
qgxqpTPX1MxUsloSzXtSsFTpENlVv30ODHLD+XecqW/6bk+sGd9O1ZPHurb6
8avp85tLpJVCzR8e7AMYdSZmfj+eKK4IqOX8qQP8J8F2XoCbqdbuYRp51rZn
9uVyGikIe2K8eurkPfTfuK0a54EycNazRh1kA2gAzOsk8NyFORF+wsTk8oVx
pWaH275wvs6l3ObIzCAPle5iXcpWpcKHU3Y4PVI9tvgRw+sKI0JWi+1v5MNG
xqeIPmj1q4I7a/FiPjisykk96IhvSWoCxYOPPE/JXQahIdSWzjkZd6qRjgV3
1BoAvlUyXcn4iPzN2DNa3bMVuqsiHMRKeoFy3/dxQuZq/+t//E8HCPyELEVP
hHUDOXUpSZEtYRQIE3GLAjmpzQGRf89rkXuSBPlFdzkKl9lcH2fa3k3QNZbb
/osu5+62RUIPC7YVKWajYlYw1Cy/1x2eXI6nsLuJjINeByHNiU/zIdBw6o2B
nUfNLgt2NF/qrlA5r5UaHW6CxF9Y4GScsspTJyoMSR/9T8fZplBFV5mEuCsV
AgupfY5bLostiYgUCbZtrpsYWAob+vG7EMsqiv7y59eFTxxlHnU1zeuiPCfz
M+Nqd2mTrZE8vd2GFAKmq4YXsbgImu7J2eH+58+Dv/xV883sR8JqNTQtkyEa
ExdHE6+raqOIWr894A5xCIhOCGGLlUMf0qZ6yzicQ/xSrRoEexpYmZsI7UQq
oW4ITyvgP4/FZ2MNers+c62npSz/VZ7Ym8zzTrxccVbu5D3Xc3YtqDEcnJHW
rjeqNW/ijWRvVlGn8R6UrCDtBpfZMRoPxtBsnRIwd2bD0n0hQMw49+lKLky1
NOxeRfULQYldDVi/kZHqYD5ccWUbjzFotqo5PYacsjvOZRP1/pnrVuOGTNzb
KLrxHCFqCjO+Z6+Y7yM5hH1ZKRIAhSoFc6Ym+02BJ4DJ08w06TI/s1yKqifh
1i/hz+1I3QgyWTiSkIbpKXj4KzkqqaSnPP0oclR6g6iZeYJvdsDVffwYwqt8
7p0zpkKAqYFc9qhR5N5G2aiQ8sU09jTugqjGeGekGaocqlxbB8NUT9HuCefU
BBPbfWcitkmHfcuk4nDvcHD6hVukwT20r0p8V4NI5L3yJU5tkJQajci42iNt
1BegcVjaikiB6vuoxZeaBLe7EWGl8C1CjrJH/Yh91LWmZs6L5Z2GSsNbABK9
/jKS4Xm8mKySNSvAtKOqF7E+6cYvjXfqg4GQlw5uqbp4GKM/frdZZUKsksfR
wk1ssxSi0Pfc1KDMHkd7O2bSYY/ofQ7xRbaQezWaGUAvlSB7XRTEFDjCuMin
ZFFz+IAd6BI5n/ouA+7FNbHDSOa8+9jSpYSG6YmlcyHbObaPiHQvUvXypbQa
WiBCMjo5PtxPj7LZ9CgbTQ73z85G6fg0TQ/OzibT49HB6ez4cHZ8cNSJuuyR
rc739u5oJuvxgEbY++K29FhkryQgtX/Ck9s/iZ64WbErj9ALcDQYDuKrtJw3
RIB6WEltg9dXN4xtYAAimSdrCvM1GQ5DnqV5TiwSiUaBdc3xmHOPA+obV8wa
wKXI6lgH9QScDBzlztWrEK2uaaJ30tNA7Tp1kQ3INUDVlQZHdaiG/9HVqodp
9TkaeSFHye3DoqjRzEzAn11M1IOGOnYvqkKIo/xZc8d1fompZfaLCL9oZmj4
Or+QF1sBIbIkVFtNhiMXL9P4C1DXsmkE5cSBjfmb/H0VNJC/UF1HOuaxwNb6
D3UM9XH8UQj6FCZZsmtpOW3EWF49+xloykKvu2Rp5AyvgH1hPX4WPm8/PB5S
mWit2WPP0OjpS45s0ECrlRIW9ECuzgy4y89vbt7Few+jPacSBVU9WrYaP6W/
sOYRHCiSNNQzo5B+OitETASxFbuBwByfiXlPOUzBIIQTa1EtTAKU7LqLC6y+
9Rj3kauAp8O21OoKtDnxma11kC9mJxa5+EpiOXrhsejs++qmTBSAhvT+bdnR
YhSsoNHKWDhCgW2KC20lJS4iJgskG5Z2xHGXaOQWbpRb+uH8lkNaPREnjMFb
zGZc9W+5NeaSCeMyWvd1J30G1cdgVVU+2Bz5UJ8XBk/29XuS3X9JbLPmvdom
4z6vgmMiuoqtHeWuLU69ITbni1nErtm1rzynP12+u7KXRETgxfssWa5pFnti
bvAhJ3CuJe94X5MrzR8jWWr4sz7DJU4jXwwhHiyo3GEmBua0XrqsE6mpn6wD
vF7dqPOIrxEXBCPXOoTJzbjCQRL0CoFMEI8DTGd3zSWDVjBvnay9ef5H5YpW
2u2NGmtC1FRtzJ7BpzttGcaSjFVgq6tPriTkJaZoWZws3IE8T5sT+QlLwop7
tzkpKneW4h39+dyAFNDxarT3ev8cJTuSE9JRVnRrTUY6zBvryb0twaVRPPXm
yL9ZC0udo6qFVIxxtfjDDct1K4wDk/AfgzbNeQp12elMCb4/q/PFOdBTuQaR
lykswiv2AGx2KjrfTsB7JP2zvaOTEV2p09nhZHp6MDmZHh5PZ2enpyczUq6O
989Gw9PD46N0tL9HPLPaC6ToHs1c3bOVJVF8OBzuJ+JZPkuGJ71+5ANoyBHV
23Cf0iZUal9VxZqjMTRoPoMRPItHJ1JRK+pDJG9RecotzF0MW3yjK1c6w6Ia
kI8a9kNkQ/FgOAldqARusvWHfJ6n5cZwwlopwD4xgo+JeHm5kpoSW38/QuA0
145iobcilAmeJ/mDRjpM0H018mcqfO0Z9/NNGvktgYg4j3mfjS8k41y4bnpH
58nvZ5lO9IJqXYTVtlq5fu9yAz3BebMHo69SIClH6matFI14BZ+DSgY8+MK1
lY678kuQtXo0Dg5OuE3XtURKJnTU1i4GuV7l+5DfIZ1Ea9DcvtnynPXLAtGB
LM83flZ4O7tllvDwdDvOWcg1JI1Z7e8PuburDwbJoz2fYKIb+L0mpGuOPLyb
ocxhqynjCizNp2qcGf24fUhSmObaxNFbKu22YLgqkbbUm4o+lC9YGZaqJnZ7
dh/vM+jdqRMM0/xOWqhIf3ku4ulU9+n+0fF5R1HLFNLRe0/dNn1vsXF22pRq
k/Cla1If12xNNcPDA+qFhZB1oTPQmLdOIFLYtK7Ig2gHywLX8N3J8e89eXzv
ZH9ycDI8nM7Gp2enR6PZ+GQ8mg2nk/RwerB/Mj4dHs7SLDua9C6i5qkRX0uC
k1PrLsz6DNZLu+HMVpZTkYhzQM1ovBE3o4uQbZlXnCT0rSthyttjivsOUoQX
xsz46Ohs/5Ts1iPu8AlHrDlg3UWOIWV2EJDwquYJmY11EQXxkrB14bJhcLDb
3iDUtz2YduhC1EIgTVVX75y/bpKqKCow/NtPxaE+fucytMDswu4515qHcs99
Jm+kpkVzejdRdAU/p6/wM8TNpNX8pu+BfpttPcLeNdFXm9b0WylU2sBlZ4eY
RFpFcm2WVPW0Qbl6TTB71qq48qJVttPyq0u9l1TkZw8eNxqE6XiCD5nv8jg6
YNeevjtyQWlNi1VkYGRUI0eFkwel60Ng4kt9EO8W1EUO934VGLhSkB4gUzS0
yCbQb9CoLJpu900THLEGwNn5VqMU36Qm6JoWfaFrWtzsoSSSV5oeMx3+smz0
UuVe5LPkLfwnzRZuv7M76K7OoNt9Qfvtfp6NDp79JuKJdElFJmPQ8zToeLqj
NerOJqgskqQJapDgETbZjHY21WwnnzIVVd/cVzNq9dWUpqM+ER03bpYuoK4F
Xafp8bH1+5hzya66ZLnJaPRkk9F2VqTtY9Dww1pi8+68DWotpTULm3xR9HYb
/tsVtQUVdvLOBlC56/MUNyDho98NCf8GHVjBtqT6sl1jHnVbjT2kr8fTzRd2
gOBvdSSI3I5pgYQz9gVNDrqeNJYJQUTSsOPKjh1nEvPljttsLEB0aBUnSm5i
Wm9VukauAHyr3jXeqnfl4k9F+NWirEYZaoTCx0QLH3cc9engsHehESmtFrDa
R1ej2Sp+jAwgtFX8aLEwyfnFwT8nw0daKZNgaee3R9ELaZb2tZxwoQ4mrSdT
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
f//732M+6OgjzaXzf8qznXMJwXNeorQwxseDorzbg/q6tz/cHyaj/T19vo8f
59Pwh+oaSXPI0b0tF0lisQPSeIXUeBCysOYZD7OtHNrUH0b6KO0ZPynZdvKZ
ddmjz//ssIz7DtKn71L7+U+i0tv1Mv/Q+St+uwv/k3uKl+sM36/CT3m7Yg+X
TB/4CSkWL7+CPS41fTaKP/flFzqTxg8kHQuGV758mS3v6vvGb2zO9trdi3eP
2gboZ7y0wO7znzbsv8bHYgf6j8wedB/stAv167+6yXxlR+1t7V1tT3nXXtne
bC3kWx7G8r76oCz6q4/t3IpwKcFpoetfsI/0Vc4Nj594i3vO/pL/Glk4+n2K
+rIPk/m6Ijbwio3fNa95iDE+R5/55hseAjiIcIS4K3pH7/9X1mBYV9/KGmwN
xhpIVLyZuSvwuy6Nay36VTIGMvBX6diGwxkZO7B4QEhHAui7my2wpoPJfUmz
+2tjuFYW37cTpDXhZg60m1KDD5/e1F1b61txC/tljACwZN8F2m/779j8Lx+B
Td+//Gt3Wn8hE/zGhxuL2Hkhg/vM/wv/9ZWb/p8j4L66PlisaC/c/600LX1z
/7eS9DR7ipBt4PA7e0WTShzAyS2qyNoEuyue0HqkFQx54lvonNujI++OxqZv
t95tGIzF0rVPfmJwFwzYdd+alYut1bNQe/Jb7a/sZdmm/QRU7lvretX+FiGL
7Y9xkW61CeTuLy2vY3vBQgrSxKoTfPlXf2dCoa2U/lWxPeX72rqpeq3alzDi
l5nAdLkMNz7VpZUSp+GTz+qZTS0qYskgBlEm6q8FIpopL612Cw7tcryJfoT0
/L7SDLgWfE5i5mo7wFOZ8eTyGeoiyuekIEiperH8YjDIfm1VW+iBo8GdKMBB
l0CbWUjnPgzRzLKoMmnOZmjP6tIK3f1RId3HZUEcX0CW7nLjkyoYorooUA38
WpsQwpILdx3+Ul/BHwaWWgjULrgE+7kd69rDf9gc7cSr+zJFo0GxDDXTLahj
q54OtLXKo8TAbf00auEL1Aw8zamz/OyPz36OR4cMgvjITkZLNBH68MiwX6av
IAIfRj5c8KiIJMa8WdWsLq/uBXbR8pppdVaZXReyX+5QgqyoViZJ2EnSjPGL
1nH5SxJG8XPDPd8Z+WYPi1taAtqzYtEdB4Cups/SJWf1cTKlIgAGWQO9Qfwy
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

-->

</rfc>

