<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mpsb-agntcy-messaging-02" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="agntcy-messaging-eco">An Overview of Messaging Systems and Their Applicability to Agentic AI</title>
    <seriesInfo name="Internet-Draft" value="draft-mpsb-agntcy-messaging-02"/>
    <author fullname="Luca Muscariello">
      <organization>Cisco</organization>
      <address>
        <email>lumuscar@cisco.com</email>
      </address>
    </author>
    <author fullname="Michele Papalini">
      <organization>Cisco</organization>
      <address>
        <email>micpapal@cisco.com</email>
      </address>
    </author>
    <author fullname="Mauro Sardara">
      <organization>Cisco</organization>
      <address>
        <email>msardara@cisco.com</email>
      </address>
    </author>
    <author fullname="Sam Betts">
      <organization>Cisco</organization>
      <address>
        <email>sambetts@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="07"/>
    <keyword>AI</keyword>
    <keyword>Agentic AI</keyword>
    <keyword>Communications</keyword>
    <keyword>Realtime</keyword>
    <abstract>
      <?line 91?>

<t>Agentic AI systems require messaging infrastructure that supports real-time
collaboration, high-volume streaming, and dynamic group coordination across
distributed networks. Traditional protocols like AMQP <xref target="AMQP"/>, MQTT <xref target="MQTT"/>, and NATS <xref target="NATS"/> address
some requirements but fall short on security, particularly regarding
post-compromise protection and forward secrecy essential for autonomous
agents handling sensitive data.</t>
      <t>This document analyzes six messaging protocols—AMQP, MQTT, NATS, AMQP over
WebSockets, Kafka, and AGNTCY SLIM—across dimensions critical for GenAI agent
systems: streaming performance, delivery guarantees, security models, and
operational complexity. We examine how each protocol's design decisions impact
agentic AI deployments, from lightweight edge computing scenarios to large-scale
multi-organizational collaborations.</t>
      <t>AGNTCY SLIM emerges as a purpose-built solution, integrating Message Layer
Security (MLS) <xref target="RFC9420"/> with gRPC <xref target="gRPC"/> over HTTP/2 <xref target="RFC9113"/> to
provide end-to-end encryption with forward secrecy, efficient streaming, and OAuth-based
authentication <xref target="RFC6749"/>. Unlike transport-layer security approaches, SLIM's
MLS implementation ensures secure communication even through untrusted
intermediaries while supporting dynamic
group membership changes essential for collaborative AI agents.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/agntcy/slim-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 115?>

<section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>When designing a multi-agent system for generative AI, the messaging layer
becomes a critical piece of infrastructure. GenAI agents—built with frameworks
like LangGraph, AutoGen, or LlamaIndex—often need to collaborate in real time,
exchange high volumes of streaming data (e.g., token-by-token outputs), and
coordinate complex tasks such as voting or consensus. Moreover, security
requirements extend well beyond basic TLS; in scenarios where agents share
sensitive models or partial computations, post-compromise security and robust
end-to-end encryption are essential.</t>
      <t>In practice, a designer of such systems will require a protocol that efficiently handles one-to-many or
many-to-many communication, supports dynamic membership (with agents joining or
leaving on the fly), and scales to accommodate a “forest” of agents spread
across global networks. Some protocols excel at ultra-low-latency,
high-throughput streaming—critical for continuous token streams or aggregated
embeddings—while others emphasize strong consistency and durability.
Additionally, advanced cryptographic features such as automatic key rotation and
forward secrecy are vital when compromised credentials must not enable an
attacker to decrypt future communications.</t>
      <t>Below, we compare six messaging protocols—AMQP, MQTT, NATS, AMQP over
WebSockets, Kafka, and AGNTCY SLIM (Secure Low-Latency Interactive
Messaging)—across dimensions that matter for GenAI agent systems: streaming
performance, delivery guarantees, flexible pub/sub patterns, agent coordination,
security (including end-to-end encryption and zero-trust support), and
real-world adoption.</t>
    </section>
    <section anchor="protocol-analysis-for-agentic-ai-systems">
      <name>Protocol Analysis for Agentic AI Systems</name>
      <t>The following sections provide detailed analysis of each messaging protocol in
the context of agentic AI requirements.</t>
      <section anchor="traditional-enterprise-messaging-amqp">
        <name>Traditional Enterprise Messaging: AMQP</name>
        <t>The Advanced Message Queuing Protocol (AMQP), most commonly implemented through
RabbitMQ, represents the gold standard for enterprise messaging systems. AMQP's
strength lies in its sophisticated message routing capabilities through
exchanges, queues, and routing keys, enabling complex message flow patterns
essential for enterprise applications.</t>
        <t>For agentic AI systems, AMQP offers several advantages. Its support for both
at-least-once and exactly-once delivery semantics (particularly in AMQP 1.0)
ensures reliable message delivery between AI agents, which is crucial when
agents are coordinating critical tasks or sharing expensive computational
results. The protocol's durable queue support means that agent messages can
persist across system restarts, preventing loss of important coordination data.</t>
        <t>However, AMQP's enterprise focus comes with trade-offs. The protocol carries
higher overhead due to its rich feature set, which may impact performance in
high-frequency agent communication scenarios. Streaming capabilities require
extensions like RabbitMQ Streams, adding complexity to deployments focused on
real-time agent collaboration.</t>
        <t>Authentication in AMQP relies on traditional enterprise mechanisms like SASL,
LDAP, and Kerberos, which integrate well with existing corporate identity
systems but may not align with modern cloud-native authentication patterns
preferred in AI infrastructure.</t>
      </section>
      <section anchor="iot-optimized-messaging-mqtt">
        <name>IoT-Optimized Messaging: MQTT</name>
        <t>Message Queuing Telemetry Transport (MQTT) emerged from the IoT world with a
focus on lightweight, efficient communication over constrained networks. Its
topic-based publish-subscribe model maps naturally to many agent communication
patterns, where agents subscribe to topics representing different types of
events or data streams.</t>
        <t>MQTT's three Quality of Service levels (QoS 0, 1, and 2) provide flexibility in
balancing performance versus reliability. For agentic AI systems, QoS 0
(at-most-once) works well for frequent status updates or non-critical
notifications, while QoS 2 (exactly-once) ensures critical agent coordination
messages are delivered reliably.</t>
        <t>The protocol's very low overhead makes it attractive for scenarios involving
large numbers of lightweight AI agents or edge computing deployments where
bandwidth is constrained. However, MQTT's IoT heritage shows in its limitations
for agentic AI use cases. Native streaming support requires broker extensions,
and message-level security typically relies entirely on transport-layer TLS
rather than end-to-end encryption.</t>
        <t>MQTT's authentication mechanisms, while sufficient for IoT devices, may not
provide the sophisticated identity and access management features required for
complex multi-agent AI systems involving different trust domains.</t>
      </section>
      <section anchor="cloud-native-messaging-nats">
        <name>Cloud-Native Messaging: NATS</name>
        <t>NATS represents a modern approach to messaging designed for cloud-native
architectures. Its lightweight design and support for multiple communication
patterns—publish-subscribe, request-reply, and queue groups—make it particularly
well-suited for microservices-based AI agent deployments.</t>
        <t>The protocol's core at-most-once delivery semantics align well with scenarios
where AI agents can tolerate occasional message loss in favor of high
performance. For use cases requiring stronger guarantees, NATS JetStream
provides at-least-once delivery and streaming capabilities, though this requires
additional infrastructure complexity.</t>
        <t>NATS's optional broker architecture offers interesting deployment flexibility
for agentic AI systems. While most deployments use a broker for efficiency, the
protocol can support peer-to-peer communication, potentially enabling direct
agent-to-agent communication in specialized scenarios.</t>
        <t>Authentication in NATS includes modern options like JWT tokens and NKey
cryptographic authentication, aligning better with cloud-native security
practices. However, like MQTT, NATS relies primarily on transport-layer security
rather than providing built-in end-to-end message encryption.</t>
      </section>
      <section anchor="browser-integration-amqp-over-websockets">
        <name>Browser Integration: AMQP over WebSockets</name>
        <t>AMQP over WebSockets addresses a specific deployment challenge: enabling
browser-based AI agents or user interfaces to participate in AMQP-based agent
coordination systems. This approach tunnels standard AMQP protocols through
WebSocket connections, allowing web applications to overcome firewall
restrictions and network topology limitations.</t>
        <t>For agentic AI systems that include web-based components—such as user-facing AI
assistants that need to coordinate with backend AI agents—this protocol variant
provides a bridge between browser environments and enterprise messaging
infrastructure. The WebSocket Secure (WSS) transport ensures encrypted
communication from browser to broker.</t>
        <t>However, the additional protocol layers (AMQP within WebSockets) introduce
higher overhead compared to native AMQP or other lightweight protocols. This
makes AMQP over WebSockets primarily suitable for scenarios where browser
integration is essential rather than for high-performance agent-to-agent
communication.</t>
      </section>
      <section anchor="high-throughput-streaming-apache-kafka">
        <name>High-Throughput Streaming: Apache Kafka</name>
        <t>Apache Kafka <xref target="Kafka"/> represents a fundamentally different approach to messaging, based
on distributed commit logs rather than traditional message queues. This
architecture provides exceptional throughput and built-in streaming capabilities
that align well with certain agentic AI use cases.</t>
        <t>Kafka's partition-based topic model enables massive horizontal scaling, making
it suitable for AI systems that need to process large volumes of training data,
model updates, or inference results across distributed agent networks. The
platform's native streaming capabilities through Kafka Streams and ksqlDB provide
powerful tools for real-time processing of agent-generated data.</t>
        <t>The protocol's built-in persistence across distributed clusters ensures that
agent communication history is preserved and can be replayed, which is valuable
for AI systems that need to audit agent decisions or retrain models based on
historical interactions. Consumer groups enable multiple agents to process
different partitions of the same topic concurrently, supporting parallel AI
workloads.</t>
        <t>However, Kafka's strengths come with complexity costs. The requirement for a
distributed cluster infrastructure may be overkill for simpler agent
coordination tasks. While Kafka provides exactly-once semantics through
transactions, the default at-least-once delivery may require additional
deduplication logic in agent implementations.</t>
        <t>Kafka's security model, while comprehensive, relies primarily on transport-layer
encryption and broker-based access controls rather than end-to-end message
encryption, which may not meet the security requirements of AI systems handling
sensitive model data or proprietary algorithms.</t>
      </section>
      <section anchor="next-generation-agent-messaging-slim">
        <name>Next-Generation Agent Messaging: SLIM</name>
        <t>AGNTCY SLIM <xref target="SLIM"/> (Secure Low-Latency Interactive Messaging) represents a
purpose-built protocol for modern agentic AI systems, designed to address the
specific security, performance, and coordination requirements that existing
protocols cannot fully satisfy.</t>
        <t>SLIM is intended as a transport layer for agent protocols like A2A <xref target="A2A"/>,
MCP <xref target="MCP"/>, and ACP <xref target="ACP"/>. It handles secure routing, group messaging, and
end-to-end encryption so protocol
implementations can focus on agent semantics. A registration-based model lets
agents become reachable through the SLIM network without exposing server ports,
while only routing nodes need to be publicly reachable. This simplifies
deployment for agents behind NATs and firewalls.</t>
        <t>SLIM's foundation on gRPC over HTTP/2 and HTTP/3 provides several immediate
advantages for AI agent communication. The binary protocol buffer wire format
minimizes serialization overhead while supporting both binary and text data
types essential for AI workloads. HTTP/2's multiplexing capabilities allow a
single connection to carry multiple concurrent agent conversations, reducing
connection overhead in systems with many interacting agents.</t>
        <t>SLIM is architected as a distributed system with a clear separation of
concerns:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Data plane</strong>: Routes messages across SLIM nodes using only metadata for
efficient forwarding and topology management.</t>
          </li>
          <li>
            <t><strong>Session layer</strong>: Provides reliable delivery, MLS-based end-to-end
encryption, and secure group management (create, invite, join, remove).</t>
          </li>
          <li>
            <t><strong>Control plane</strong>: Orchestrates routing nodes, configuration, and
administrative operations.</t>
          </li>
        </ul>
        <t>Routing nodes run only the data plane, keeping infrastructure lightweight,
while language bindings include the data-plane client plus the session layer
for full security and reliability.</t>
        <t>The protocol's quality of service model explicitly addresses the diverse
communication patterns found in agentic AI systems. Fire-and-forget messaging
supports high-frequency status updates and non-critical notifications, while
reliable exactly-once delivery ensures critical coordination messages and
expensive computational results are never lost. This extends consistently across
request-reply patterns and streaming communications.</t>
        <t>SLIM's security model is intentionally two-tiered. At the network layer,
HTTP/2 with TLS 1.3 provides hop-by-hop transport security, integrating
naturally with existing infrastructure—load balancers, API gateways, and
observability tools all operate on TLS-protected HTTP/2 connections without
requiring access to message content. At the content layer, MLS provides an
application-layer encryption envelope that protects message payloads
end-to-end, independently of how many TLS connections are traversed along the
path. Routing nodes see only the channel name and an encrypted blob; even after
terminating a TLS session, an intermediate node cannot access agent data.</t>
        <t>This two-tier approach—HTTP/2 for network security, MLS for content
security—gives SLIM a zero-trust intermediary property: routing nodes can
forward messages through untrusted infrastructure while maintaining full payload
confidentiality. Protocols that rely solely on transport-layer security require
trust in all intermediaries, since each hop terminates TLS and has visibility
into message content. For agentic AI deployments spanning multiple organizations
or transiting third-party infrastructure, this distinction is critical.</t>
        <t>The protocol's authentication model demonstrates particular innovation in
addressing agentic AI security requirements. By transporting MLS credentials and
cryptographic proofs within OAuth bearer tokens over HTTP/2, SLIM achieves
several important properties:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Interoperability</strong>: Leverages standard HTTP/2 and OAuth libraries, reducing
implementation complexity and improving compatibility with existing
infrastructure</t>
          </li>
          <li>
            <t><strong>Scalability</strong>: Single persistent HTTP/2 connections efficiently carry many
MLS-secured messages between agents</t>
          </li>
          <li>
            <t><strong>Immediate revocation</strong>: Malicious or compromised agents can be immediately
ejected by revoking their OAuth tokens without requiring complex ratchet
tree rebalancing operations</t>
          </li>
        </ul>
        <t>SLIM's naming system is hierarchical and DID-inspired, for example:
<tt>organization/namespace/service/instance</tt>. This supports anycast routing (to any
available instance), unicast routing (to a specific instance), and service
discovery without hardcoded endpoints or external registries. The structure maps
cleanly to organizational boundaries and multi-tenant deployments.</t>
        <t>The protocol's support for both broker-based and peer-to-peer operation offers
deployment flexibility. While broker-based operation provides efficiency for
multi-party group communications typical in agent coordination scenarios,
peer-to-peer capabilities enable direct agent-to-agent communication when
appropriate. SLIM exposes two session types that map to common agent patterns:
point-to-point sessions for tool calls and group sessions for coordination and
broadcast.</t>
        <t>SLIM provides multi-language bindings. Python and Go bindings are available
today, with JavaScript/TypeScript, C#, and Kotlin in progress, enabling
heterogeneous agent systems to interoperate on the same transport.</t>
      </section>
    </section>
    <section anchor="security-analysis">
      <name>Security Analysis</name>
      <t>Security requirements for agentic AI systems extend well beyond the capabilities
provided by traditional messaging protocols. The autonomous nature of AI agents,
combined with their access to sensitive data and computational resources,
creates unique threat models that messaging infrastructure must address.</t>
      <t><strong>Post-Compromise Security</strong>: In traditional systems, credential compromise
typically requires immediate revocation and re-authentication. However, AI
agents may operate for extended periods with limited human oversight. SLIM's
MLS implementation provides forward secrecy, ensuring that compromise of
current credentials cannot decrypt past communications, and post-compromise
security, guaranteeing that future communications remain secure even after
credential compromise.</t>
      <t><strong>Quantum-Safe Cryptography</strong>: As quantum computing advances threaten current
cryptographic standards, AI systems—which may operate for years with the same
cryptographic keys—need protection against future quantum attacks. SLIM's
MLS implementation provides this protection and, when combined with
post-quantum cipher suites, also defends against future quantum attacks; traditional
protocols rely entirely on classical cryptographic assumptions that may become
vulnerable.</t>
      <t><strong>Multi-Domain Operations</strong>: Agentic AI systems often span multiple
organizational and security domains, with agents from different organizations
collaborating on shared tasks. Traditional protocols typically assume trust in
messaging infrastructure, but SLIM's end-to-end encryption ensures secure
communication even when messages transit through potentially untrusted
intermediaries.</t>
      <t><strong>Dynamic Group Membership</strong>: AI agent groups frequently change as agents join
collaborations, complete tasks, or become unavailable. MLS's efficient group
key management handles these membership changes while maintaining security
properties, unlike approaches that require complete cryptographic context
regeneration.</t>
    </section>
    <section anchor="performance-characteristics">
      <name>Performance Characteristics</name>
      <t>The performance characteristics of messaging protocols significantly impact the
behavior and capabilities of agentic AI systems, particularly as the number of
agents and frequency of interactions scale.</t>
      <t><strong>Latency Sensitivity</strong>: Many AI agent interactions are latency-sensitive,
particularly in real-time decision-making scenarios or when agents are
coordinating time-critical tasks. SLIM's HTTP/2 foundation provides header
compression and multiplexing that reduce per-message overhead, while the binary
protocol buffer encoding minimizes serialization costs.</t>
      <t><strong>Throughput Requirements</strong>: Large-scale agentic AI systems may involve
thousands of agents generating substantial message volumes. While protocols
like Kafka excel at raw throughput, they may introduce latency through their
log-based architecture. SLIM balances throughput and latency through efficient
connection reuse and optional reliability levels.</t>
      <t><strong>Connection Efficiency</strong>: Traditional protocols often require separate
connections for each communication pattern or security context. SLIM's
connection multiplexing allows a single HTTP/2 connection to handle diverse
communication patterns between agents, reducing resource consumption and
connection establishment overhead.</t>
      <t><strong>Streaming Performance</strong>: AI agents frequently exchange streaming data—such as
token-by-token language model outputs or real-time sensor data. SLIM's native
gRPC streaming support over HTTP/2 provides efficient bidirectional streaming
without the overhead of connection-per-stream approaches.</t>
    </section>
    <section anchor="deployment-and-operational-considerations">
      <name>Deployment and Operational Considerations</name>
      <t>The operational characteristics of messaging protocols significantly impact the
total cost of ownership and operational complexity of agentic AI systems.</t>
      <t><strong>Infrastructure Requirements</strong>: Traditional enterprise protocols like AMQP
require dedicated message broker infrastructure with high availability and
clustering capabilities. Kafka requires even more complex distributed
infrastructure. SLIM's optional broker architecture allows deployments to scale
infrastructure complexity with system requirements.</t>
      <t><strong>Monitoring and Observability</strong>: Debugging distributed agentic AI systems
requires comprehensive visibility into agent communications. SLIM's foundation
on standard HTTP/2 infrastructure enables use of existing observability tools
and practices, while proprietary protocols may require specialized monitoring
solutions.</t>
      <t><strong>Integration with Cloud Services</strong>: Modern AI deployments increasingly rely on
cloud services for scalability and managed operations. SLIM's HTTP/2 foundation
integrates naturally with cloud load balancers, API gateways, and observability
services, while specialized messaging protocols may require additional
integration layers.</t>
      <t><strong>Compliance and Auditing</strong>: AI systems in regulated industries require
comprehensive audit trails and compliance capabilities. SLIM's structured topic
hierarchy and optional message persistence support regulatory requirements,
while the end-to-end encryption provides compliance with data protection
regulations.</t>
    </section>
    <section anchor="rpc-in-agentic-protocols-and-relationship-to-messaging">
      <name>RPC in Agentic Protocols and Relationship to Messaging</name>
      <t>Agentic AI systems are predominantly built around Remote Procedure Call
(RPC)-oriented protocols. A2A <xref target="A2A"/>, the Model Context Protocol (MCP) <xref target="MCP"/>,
and the Agent Client Protocol (ACP) <xref target="ACP"/> all expose synchronous
request/response semantics: a caller issues a structured request, awaits a
response within a bounded time, and receives an explicit result or error. This
design provides well-defined interfaces, typed contracts, and composable error
handling that make agents discoverable and interoperable across heterogeneous
systems.</t>
      <t>However, pure point-to-point RPC does not scale to all coordination demands of
multi-agent systems. Fan-out invocations, asynchronous event delivery, streaming
responses, dynamic group membership, and multi-domain security are capabilities
that RPC protocols delegate to the underlying transport. This section examines
how RPC and messaging interoperate in agentic systems, and how SLIM's SRPC
capability provides a purpose-built solution.</t>
      <section anchor="agentic-protocols-are-rpc-oriented">
        <name>Agentic Protocols Are RPC-Oriented</name>
        <t>The three leading agentic coordination protocols each define an RPC-based
interaction model:</t>
        <t><strong>Model Context Protocol (MCP)</strong> defines a JSON-RPC interface between LLM hosts
and tools or resources. A host invokes tools by name with typed parameters and
receives typed results or streaming token outputs. MCP is designed for
synchronous tool calls with optional server-side streaming for partial results.</t>
        <t><strong>Agent2Agent (A2A)</strong> is an HTTP-based protocol for delegating tasks between
agents. An orchestrator submits task requests to worker agents and receives
structured results or a stream of progress events. Agent capabilities are
advertised via Agent Cards, enabling dynamic discovery without pre-configuration.</t>
        <t><strong>Agent Client Protocol (ACP)</strong> standardizes JSON-RPC communication between
code editors and coding agents, operating over stdio for local agents or HTTP
and WebSocket for remote agents. It enables editors to invoke coding agents and
receive structured responses, following a pattern analogous to the Language
Server Protocol for language tools.</t>
        <t>All three share a fundamental structure: a caller invokes a named callee with
parameters and awaits a response within a bounded time. SLIM is designed to
serve as the transport layer beneath all three.</t>
      </section>
      <section anchor="rpc-vs-messaging-synchronous-vs-asynchronous">
        <name>RPC vs. Messaging: Synchronous vs. Asynchronous</name>
        <ul spacing="normal">
          <li>
            <t><strong>RPC (A2A, MCP, ACP)</strong>: The caller issues a request and blocks or awaits a
timely response. Semantics emphasize tightly scoped operations with bounded
latency and explicit error contracts.</t>
          </li>
          <li>
            <t><strong>Messaging (AMQP, MQTT, NATS, Kafka, SLIM)</strong>: Decoupled producers and
consumers communicate via topics, subjects, or queues. Delivery can be
one-to-one, one-to-many, or many-to-many, with loose coupling, buffering,
and retries. Producers are not inherently blocked by consumers.</t>
          </li>
        </ul>
        <t>In practice, agentic applications need both: synchronous tool invocations for
interactivity and asynchronous channels for streaming output, progress,
coordination, and fan-out/fan-in patterns.</t>
      </section>
      <section anchor="challenges-of-running-rpc-over-messaging">
        <name>Challenges of Running RPC over Messaging</name>
        <t>Layering RPC semantics onto an asynchronous messaging substrate introduces
several non-trivial challenges:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Request/response correlation</strong>: Messaging systems are decoupled by design
and provide no direct return path. Implementing RPC requires correlating
requests and responses using unique identifiers and temporary reply channels.</t>
          </li>
          <li>
            <t><strong>Latency and ordering</strong>: Messaging layers may introduce variable delivery
latency and do not guarantee strict ordering, which can conflict with
synchronous RPC contracts.</t>
          </li>
          <li>
            <t><strong>Error propagation</strong>: Messaging systems may buffer, retry, or drop messages,
making it difficult to propagate errors and timeouts in a way that matches
RPC error contracts.</t>
          </li>
          <li>
            <t><strong>Streaming and multiplexing</strong>: Supporting streaming RPC (server streaming,
client streaming, bidirectional) over messaging requires careful management
of stream lifecycles, backpressure, and multiplexing multiple logical RPCs
over shared channels.</t>
          </li>
          <li>
            <t><strong>Security and authorization</strong>: Ensuring that only authorized callers can
invoke specific methods, and that all messages are authenticated and
encrypted end-to-end, is more complex in a distributed, group-based
messaging environment.</t>
          </li>
        </ul>
        <t>SRPC resolves all of these challenges natively, as described below.</t>
      </section>
      <section anchor="when-asynchronous-feels-synchronous">
        <name>When Asynchronous Feels Synchronous</name>
        <t>Asynchronous transports can provide an interactive, RPC-like experience when:</t>
        <ul spacing="normal">
          <li>
            <t>A request message carries a correlation ID and a reply-to destination.</t>
          </li>
          <li>
            <t>The callee publishes a response to the reply destination within a short SLA.</t>
          </li>
          <li>
            <t>Client libraries surface responses as futures or promises and manage
timeouts and retries.</t>
          </li>
        </ul>
        <t>This pattern underpins agent UIs where a user triggers an action and expects
prompt, possibly streaming, results.</t>
      </section>
      <section anchor="bridging-patterns-rpc-over-messaging">
        <name>Bridging Patterns: RPC over Messaging</name>
        <ul spacing="normal">
          <li>
            <t><strong>Request/Reply over Pub/Sub</strong>: Implement RPC by publishing a command event
and awaiting a correlated reply event (applicable to AMQP, NATS, MQTT, and
SLIM topics).</t>
          </li>
          <li>
            <t><strong>Streaming RPC</strong>: Use bidirectional streams (gRPC over SLIM HTTP/2/3) to
deliver token streams, partial results, or progress updates while retaining
an RPC caller experience.</t>
          </li>
          <li>
            <t><strong>Sagas and CQRS</strong>: For multi-step workflows across agents, coordinate via
asynchronous orchestration with idempotency keys, correlation/causation IDs,
and compensating transactions.</t>
          </li>
          <li>
            <t><strong>Backpressure and Flow Control</strong>: Prefer streaming transports (HTTP/2/3,
gRPC) or messaging systems with flow control when returning large or
continuous results.</t>
          </li>
        </ul>
      </section>
      <section anchor="slim-rpc-srpc">
        <name>SLIM RPC (SRPC)</name>
        <t>SRPC layers request/response semantics directly onto SLIM's secure messaging
fabric, addressing all of the challenges enumerated above:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Correlation and reply routing</strong>: SRPC manages correlation IDs and reply
channel lifecycle automatically, with no application-level plumbing required.</t>
          </li>
          <li>
            <t><strong>Idempotency and deduplication</strong>: SRPC idempotency keys make retries safe
without duplicating side effects.</t>
          </li>
          <li>
            <t><strong>Ordering and synchronization</strong>: Lightweight ordering guarantees for both
request/response and streaming patterns.</t>
          </li>
          <li>
            <t><strong>All four gRPC interaction patterns</strong>: Unary, server streaming, client
streaming, and bidirectional streaming are all supported, enabling direct
mapping of A2A, MCP, and ACP interaction models onto SLIM.</t>
          </li>
          <li>
            <t><strong>Integrated security</strong>: Every SRPC call inherits SLIM's MLS end-to-end
encryption and OAuth-based authorization without additional configuration.</t>
          </li>
        </ul>
        <t>See the SRPC specification for details <xref target="SRPC"/>.</t>
      </section>
      <section anchor="advantages-of-slim-for-agentic-protocols">
        <name>Advantages of SLIM for Agentic Protocols</name>
        <t>SLIM augments the point-to-point RPC model of A2A, MCP, and ACP with
capabilities that are difficult to achieve over plain request/response transports:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Scatter-gather RPC</strong>: Invoke a single RPC across many agents simultaneously
(by topic, group, or label) and aggregate responses (first-success, quorum,
or all-success) using correlation IDs.</t>
          </li>
          <li>
            <t><strong>Group addressing and dynamic membership</strong>: Target MLS-secured groups; add
or remove agents without reconfiguring endpoints or updating caller code.</t>
          </li>
          <li>
            <t><strong>Streaming responses</strong>: Return partial results or token streams from each
agent over a single multiplexed connection.</t>
          </li>
          <li>
            <t><strong>Idempotency and safe retries</strong>: SRPC idempotency keys enable robust retry
without duplicating effects—critical for expensive or stateful agent
operations.</t>
          </li>
          <li>
            <t><strong>QoS, deadlines, and backpressure</strong>: Apply delivery guarantees, per-call
timeouts, and flow control to avoid overload while maintaining interactivity.</t>
          </li>
          <li>
            <t><strong>End-to-end security</strong>: MLS encryption and OAuth-based policy apply
uniformly across both RPC and messaging channels.</t>
          </li>
          <li>
            <t><strong>Observability</strong>: Correlation and causation IDs, combined with standard
HTTP/2 transport, enable distributed tracing and per-agent metrics with
existing tooling.</t>
          </li>
        </ul>
        <t>These capabilities let A2A, MCP, and ACP interactions scale beyond one-to-one
invocations, enabling broadcast queries, coordinated multi-agent actions, and
efficient collection of results in real time.</t>
      </section>
      <section anchor="security-implications">
        <name>Security Implications</name>
        <ul spacing="normal">
          <li>
            <t><strong>Unified identity</strong>: OAuth tokens are reused across RPC calls and messaging
channels for consistent policy enforcement. An agent's identity and
authorization scope apply uniformly to tool calls and subscription channels.</t>
          </li>
          <li>
            <t><strong>End-to-end encryption</strong>: MLS-backed channels ensure that RPC requests,
responses, and streaming payloads are encrypted end-to-end, independently
of transport hops. Routing nodes cannot inspect RPC call content.</t>
          </li>
          <li>
            <t><strong>Caller authentication</strong>: SRPC carries MLS group membership proofs with
each call, allowing callees to verify that the caller is an authorized group
member before executing the requested operation.</t>
          </li>
        </ul>
      </section>
      <section anchor="guidance-when-to-choose-what">
        <name>Guidance: When to Choose What</name>
        <ul spacing="normal">
          <li>
            <t>Use <strong>RPC (A2A, MCP, ACP)</strong> for low-latency point operations with immediate
feedback and well-defined error contracts.</t>
          </li>
          <li>
            <t>Use <strong>Messaging</strong> for broadcast/fan-out, decoupling, retries, buffering,
and multi-party coordination.</t>
          </li>
          <li>
            <t>Use <strong>SRPC over SLIM</strong> for any of the above when end-to-end security,
scatter-gather invocation, streaming responses, or multi-organization
deployment is required.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="comparison">
      <name>Comparison</name>
      <t>Table 1 provides a detailed comparison of three popular messaging protocols commonly considered for agent communication systems:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Feature</th>
            <th align="left">AMQP (e.g. RabbitMQ)</th>
            <th align="left">MQTT</th>
            <th align="left">NATS</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <strong>Protocol Type</strong></td>
            <td align="left">Message queueing (queues/exchanges)</td>
            <td align="left">Lightweight pub/sub for IoT</td>
            <td align="left">Lightweight messaging (pub/sub, req/reply, queue groups)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport</strong></td>
            <td align="left">TCP (optionally TLS)</td>
            <td align="left">TCP (optionally TLS)</td>
            <td align="left">TCP (optionally TLS)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Model</strong></td>
            <td align="left">Queues, exchanges, routing keys</td>
            <td align="left">Topic-based</td>
            <td align="left">Subjects (pub/sub), queue groups, request/reply</td>
          </tr>
          <tr>
            <td align="left">
              <strong>QoS / Delivery</strong></td>
            <td align="left">At-least-once, exactly-once (AMQP 1.0)</td>
            <td align="left">QoS 0 (at-most-once), 1, 2 (exactly-once)</td>
            <td align="left">At-most-once (core), at-least-once with JetStream</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Streaming</strong></td>
            <td align="left">Via extensions/plugins (e.g. RabbitMQ Streams)</td>
            <td align="left">Not native (requires broker extensions)</td>
            <td align="left">Native with JetStream</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Persistence</strong></td>
            <td align="left">Yes (durable queues)</td>
            <td align="left">Broker-dependent</td>
            <td align="left">Optional via JetStream</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Protocol Overhead</strong></td>
            <td align="left">Higher (rich feature set)</td>
            <td align="left">Very low</td>
            <td align="left">Very low</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Broker Required</strong></td>
            <td align="left">Yes</td>
            <td align="left">Yes</td>
            <td align="left">Optional (but common)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Authentication</strong></td>
            <td align="left">User/password, SASL (e.g., LDAP, Kerberos)</td>
            <td align="left">Username/password or custom tokens</td>
            <td align="left">NKey, JWT, token, user/password</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport Security</strong></td>
            <td align="left">TLS</td>
            <td align="left">TLS</td>
            <td align="left">TLS</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Security</strong></td>
            <td align="left">Typically broker-level or plugin-based encryption</td>
            <td align="left">Usually none at message level; rely on TLS</td>
            <td align="left">None in core (TLS in transit), JetStream can encrypt at rest</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Binary or Text</strong></td>
            <td align="left">Binary framing</td>
            <td align="left">Binary framing</td>
            <td align="left">Text-based protocol (core), binary clients available</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Use Cases</strong></td>
            <td align="left">Enterprise messaging, financial transactions, RPC</td>
            <td align="left">IoT, mobile, sensor networks</td>
            <td align="left">Cloud-native microservices, real-time communications</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Real-World Usage</strong></td>
            <td align="left">Very widely used via RabbitMQ (top open-source broker) in enterprises of all sizes</td>
            <td align="left">Dominant in IoT ecosystems; supported by many device/broker vendors</td>
            <td align="left">Gaining traction in cloud-native (CNCF project), used by major tech companies</td>
          </tr>
        </tbody>
      </table>
      <t>Table 2 extends the comparison to include additional protocols relevant to modern agentic AI systems:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Feature</th>
            <th align="left">AMQP over WebSockets</th>
            <th align="left">Kafka</th>
            <th align="left">SLIM</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <strong>Protocol Type</strong></td>
            <td align="left">AMQP tunneled through WebSockets</td>
            <td align="left">Distributed commit log, high-throughput pub/sub</td>
            <td align="left">Secure low-latency interactive messaging</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport</strong></td>
            <td align="left">WebSockets over TLS</td>
            <td align="left">TCP (optionally TLS)</td>
            <td align="left">gRPC (over HTTP/2-HTTP/3)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Model</strong></td>
            <td align="left">Same as AMQP (depends on the broker's AMQP model)</td>
            <td align="left">Topics with partitions, consumer groups, offset-based consumption</td>
            <td align="left">Hierarchical names (<tt>org/namespace/service/instance</tt>), point-to-point and group sessions</td>
          </tr>
          <tr>
            <td align="left">
              <strong>QoS / Delivery</strong></td>
            <td align="left">Same as AMQP</td>
            <td align="left">At-least-once default; exactly-once possible via transactions</td>
            <td align="left">At-most-once (fire-and-forget) or exactly-once (reliable); applies consistently to request/reply and streaming interactions</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Streaming</strong></td>
            <td align="left">Same as AMQP if broker supports streaming</td>
            <td align="left">Native log-based streaming (Kafka Streams, ksqlDB, etc.)</td>
            <td align="left">Native gRPC support via HTTP/2/3 client streaming, server streaming</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Persistence</strong></td>
            <td align="left">Same as AMQP</td>
            <td align="left">Built-in: messages persist on disk across clusters</td>
            <td align="left">Not supported</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Protocol Overhead</strong></td>
            <td align="left">Higher (AMQP + WebSockets handshake)</td>
            <td align="left">Moderate (custom binary protocol, but optimized for high throughput)</td>
            <td align="left">Low: binary Protocol Buffers wire format; native support for both binary (bytes) and text payloads</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Broker Required</strong></td>
            <td align="left">Yes</td>
            <td align="left">Yes (distributed cluster)</td>
            <td align="left">Yes for multi-party group sessions; peer-to-peer also supported</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Authentication</strong></td>
            <td align="left">Same as AMQP (broker-based)</td>
            <td align="left">SASL/PLAIN, SASL/SCRAM, Kerberos, OAuth</td>
            <td align="left">OAuth bearer tokens carrying MLS credentials and cryptographic proofs; standard HTTP/2 and OAuth libraries for interoperability; immediate revocation by invalidating OAuth tokens</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport Security</strong></td>
            <td align="left">WSS (WebSocket Secure)</td>
            <td align="left">TLS</td>
            <td align="left">TLS</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Security</strong></td>
            <td align="left">Same as AMQP (depends on the broker's encryption at rest/in-transit)</td>
            <td align="left">TLS in-flight encryption, optional at-rest encryption (broker config)</td>
            <td align="left">MLS end-to-end encryption with forward secrecy and post-compromise security, independent of transport</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Binary or Text</strong></td>
            <td align="left">Binary AMQP frames over WebSockets</td>
            <td align="left">Binary protocol (common payloads: Avro, JSON, Protobuf)</td>
            <td align="left">Binary or Text</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Use Cases</strong></td>
            <td align="left">Browser-based apps needing AMQP behind firewalls</td>
            <td align="left">High-throughput data pipelines, streaming analytics, event sourcing</td>
            <td align="left">Group messaging, one-to-many, many-to-many, cloud-native microservices, real-time communications, streaming</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Real-World Usage</strong></td>
            <td align="left">Less common, mainly for browser/firewall scenarios using RabbitMQ or similar</td>
            <td align="left">Extremely widespread across industries; de facto standard for large-scale event streaming</td>
            <td align="left">New entrant; reference implementations in Python and Go available; early production deployments</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document is an informational comparison of messaging protocols for agentic
AI systems. Security properties specific to each protocol are discussed in the
Security Analysis section of this document. Readers deploying any
of the protocols described <bcp14>SHOULD</bcp14> consult the security considerations sections
of the respective protocol specifications.</t>
      <t>Of the protocols analyzed, only SLIM provides application-layer end-to-end
encryption via MLS <xref target="RFC9420"/>, forward secrecy, and post-compromise security
independent of transport-layer security. All other protocols rely on
transport-layer TLS, which does not protect message content from trusted
intermediaries.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC9113">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t>This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AMQP" target="https://www.oasis-open.org/standards#amqp">
          <front>
            <title>OASIS Advanced Message Queuing Protocol (AMQP) 1.0 Specification</title>
            <author initials="" surname="OASIS" fullname="OASIS">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MQTT" target="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html">
          <front>
            <title>OASIS MQTT Version 5.0 Specification</title>
            <author initials="" surname="OASIS" fullname="OASIS">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NATS" target="https://docs.nats.io/">
          <front>
            <title>NATS Documentation</title>
            <author initials="S." surname="Communications" fullname="Synadia Communications">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Kafka" target="https://kafka.apache.org/documentation/">
          <front>
            <title>Apache Kafka Documentation</title>
            <author initials="A. S." surname="Foundation" fullname="Apache Software Foundation">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="gRPC" target="https://grpc.io/docs/">
          <front>
            <title>gRPC Documentation</title>
            <author initials="" surname="CNCF" fullname="CNCF">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SLIM" target="https://spec.slim.agntcy.org">
          <front>
            <title>AGNTCY SLIM Specification</title>
            <author initials="" surname="AGNTCY" fullname="AGNTCY">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="A2A" target="https://google.github.io/A2A/">
          <front>
            <title>Agent2Agent (A2A) Protocol</title>
            <author initials="" surname="Google" fullname="Google">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/">
          <front>
            <title>Model Context Protocol (MCP) Specification</title>
            <author initials="" surname="Anthropic" fullname="Anthropic">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SRPC" target="https://github.com/agntcy/slim/blob/main/data-plane/slimrpc-compiler/README.md">
          <front>
            <title>SLIM RPC (SRPC) Reference</title>
            <author initials="" surname="AGNTCY" fullname="AGNTCY">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ACP" target="https://agentclientprotocol.com/get-started/introduction">
          <front>
            <title>Agent Client Protocol (ACP)</title>
            <author initials="A. C. P." surname="Community" fullname="Agent Client Protocol Community">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7V96XLcVpbmfzzFbfuHSU0maak8XV1UR/dQ1GJWkZKspMtR
MTERjUzcTKKEBNJYSKUlR9RD9M+ZiHmWeZR6kjnfOeduSFBW98Q4HCKZCeBu
Z/nOivl8nvVlX9kz89V5bd7c2fautPemWZtr23X5pqw3ZrHvervtTF4X5ubW
lq053+2qcpUvy6rs96ZvzPnG1n25MueXX2X5ctnaO3pgvqn71X6+dQ+a21Xz
VbbKe7tp2v2ZKet1k2VFs6rzLU2gaPN1P9/uuuX84M5vn2TdsNyWXVc2db/f
Wdxd2J2lf+o+q4ft0rZnWUHPPjNPvn3yj/Nvf0//Z6um7mzdDd2ZWedVZzOa
1++yr03e2vzMLaOnZ3b04X3Tvt+0zbA7M5fh4WbhB87e2z1dVJxlZk5L5X/9
wvHXRbPdDrV/JH3yzuZVX25tluVDf9vQHLN5Zui/9VBVsu6rYZWb66Fb5W1p
q6rhr5t2k9flL/ygM3NRdiv53G7zsjoz1bDlG/7bCt+crJrtwWOvy9Wtrax5
m+/yqqzLL3nstlztcPnnHpsPbWMWeVvkbf5Fz+zk2s88c5FvzTPb992XPK/L
6azp2uh5GSip3dIdd5bOxpxf//D2jO9xtP3mfHG5MOfFXV6vbKG0bc0Pgx1A
4W/bpm9WTWWOcOuxeXzyrVns7Kpc61l+xU9zR2j0v7mR+fPTZby83dj+zNz2
/a47Oz29v78/afKu7OYNkdMJLe2064mPaEu6r/Ptzzu66/qHm5up2eJz82fb
gvLMf/2SGf32fIjZuvGEtj/3vfxzR6Pwb3P8dnLbbyt6yuvzm0U6P3xinjer
YUvE/5uzWezrvCjzA+Z4aHp13ncnZXNKV/wpX7/P07HPdznRtXzz5XPQuxbN
ur8n3jcvm4EOAXdNzuM9nn6S8028R0U8EGa2eff2Ip0YPvnyCV28vng5OfSm
3a2wemwFBlpcXV6PduDV65uLv/AXX04SctPkiB0946Sryu2JiF0sGEz05Hw0
LkTdE/6X+OTJ+bFnm88N/KppNpWdXip/dbIp+9thiTXTQ7Hk64sR9143ha2I
furefugjZqULj/8DW1D3t22zK1eTk9lijJUMsdMRlAoXB2fNe4/zPsJ3xyTl
17a1JFr+k0egW0Cy7FTO4BTncbqsmuUpSb36lGg1n++qvLb8DdHInC7elZVt
T9+9OH9+/eJkW+DQxlsnx3VRlfgRiTnauc/OdfI25eB+P7mIHPes+Ba/gVgR
XTQnodf2tjgt675timHFnJfN53OTL7u+zVd9lgVVajpFHK39eSiJXT0QAGZo
c7qDHjHQF/1t3ptu2O2atsfleTVnbUtjV/myaZkoZua23NzO7xrSmtbQzTbf
0rNmDGgKkk6k9gwrfrNqSL2XNd9m8lXbdF1WlHRLuRxo/qa2PVBCd2JuWhJq
uCyvjFtuZ6ryvWX1Yz5+xI9ff52JHP/4ET/wJwZlAfrxI378+qvJi6KlBWZd
Q9PTJUOIdIYGBW6pTEdn1BuaU2dXQ0snMDM72tFyNVR5W+3prk2OiW+yXdP1
TBttQ6jF8tzsStZDI5OeJAFY4DmtXe0NjYtdp0XQNyCGpm62zdBlfJqduaWb
Kmw8YFQJBWtAiydZdnNbdsbJRXp2Xu1/sZ3pyg/Rcfmd+fvf/h37Ibsx4w2Y
yUY1hDmzn+xy0aze276biWiXfYpEHT1AzsMUdMA1lGJnVrQVxPky+Ve2JtLh
eWdKQGfhtM3OtgwSiEtnhnidltLuzWYgaEJMb2lgt7eGZUHHU8hITQoV0SjY
1sp+oEtOzE/W2A94sjW3zb2xpCr8ar+hSdqu3NT0g1AKT7Xc7kDleSByQphV
s+eDnpk1HRdRz+a2v7f419iC8AkGHHre/pWtCR82HdB2Bc6bE/4jwbodCF/O
Y8zEE43Iv6PDinUG0RbdTnCe/je7oSWKsfPlUFbEScQiwjHEqHaD+2lsh5au
8j0d1cLt0tH11eKYqPgf3r28+MN3T74lSr4nOcaqkT7GD/oIx2u+v7l5e/rE
Xfv48e/oi77JaL/uyoI2si7mfTOnH/Trqt3vmFz5YSN6nRm7JlnPYmnEyG/O
SZLNl3lnC8bavM/CyDLuP/7+uz/8+uuJ+bFmLiWpU3eQG/MK6wqnn+9oXtD8
dCzYsG+6jFaKA6ys1+0GVkULesdtfFIB3Bh7Z2sDbTNsbs1AMm8gciwybGq7
tQSGCOl35v6W5LeTXtholUWZyKKthVHT3ZYklogNcWQpt0anTGzpaB/HDcG6
LYuC6IPsGlKcd7gNZIidem7XZA8ICiM2tobMGhg/RUeq9sfFzVcz+Wlev+Hf
37344cfLdy+e4/fF9+dXV/6XTK9YfP/mx6vn4bdw58Wb6+sXr5/LzfSpST7K
vro+/8tXcn5fvXl7c/nm9fnVV0R8tHmJdIGob8zSMl22u9ZCGOckm21HMmBJ
f9A9zy7e/p///fg7Pe4njx/Tcesf//T499+BPokqZLSmJqkpfxKp7DM6dJu3
eArE7SrflX3OIqCD7L2vzS0peNrZR/8dO/M/zsw/L1e7x9/9i36ABScfuj1L
PuQ9O/zk4GbZxImPJobxu5l8PtrpdL7nf0n+dvseffjP/1pBsM0f/9O//ksG
ErpM9PZPtG8q4UC2uREhxOSnupsJlP62njp5oyPVwFyXLS1xDoRRkOW70q4s
PBCprj+JBTz0iYgskRItoRZWzBnz9hWxy6s2392SjiGV9grHTPO5qvJtDtP+
A91OpgCtorZEO0RagZdAY4wkDJDELLMfhPsYRBgBER2mF1QLNKI5IiR7Qots
3tt6vtzP+RfTDD1J8O5YlImHF9bpEkJR3XuisYHUB9HaXcOCgJlbPRcn5rpp
LcRo0FBZghIIsUJ03lui3KXdN/Q7iUFSMjdXi6dYTVAe9yBj3UIibOKrLCh2
UXsYnLGFKrxBBB7xwhhaBIlJI7bNkoRcNi3Kwb9edhEXXdakK0kdltDFuZIS
yWDsKnbC4b/7kpbkQGDu9avAPq8JiJMZpuBYaovhScvvaR0Zfvq/ExE9C6jR
IcBI3h4xVek2/bUpazmUrLL5Hf9aMzGvq70crGFdzLo5X2GcBp4omvHf//Y/
iRFs1//9b/8Lq3M7TxIsJzUlgGZDMJ82O2DLBYBgAJVEgWT+0IqJy9p8XjX3
pLLoyEkdZoxsVdPQUQWiJApP0BFMm7IeCNoJieqVfNz5ZgMACRWFPSgAJMFh
oqAaWmpLs9jubomqfmEE3dAmgEIJGmMegqSHVj2CJ9l54cBxRTo7d34XJohm
A86kDV/bvBcdqtQP+Akvzoo1Eq0/d7g1G+NWUNQdZDQLcROoEoPYQiitI8HU
9aZuiFjqfElryess7/uckGaLwyJ4hhmZ9dAfKHHo0WeWNntGnMUDYMz/X/CW
LEkBEld0uldyupC6ltnkzmbeHXs8iYSZI2jv6IYxGDaHYDj7bTC8BtDFlu2G
5Wk3LEkm4OGQA/LU2FSaZV4WHJX1qhpAQQ/AOiz8F9s2c0ZFjg1VQLIFR1xQ
kXYvGr7hhBWQt0HPYWgQ3fEqI5NRndQCaNYkzZt7MVtWAnwc1ixsnxNVF2Kx
4EHElozeD4+VZGcGPle3gGdgGTGWwTTJr79ObMIXAlQgJ/3RnTFJyBS/1Bc5
I7Hc9UyajFk8DIXeEr7P3uXLZdlf/zCjOZFk6VjGYOKbhjbSORx5x2yYVliv
EsgJT4/gLuik3pAErABTSYGUkFkNMW3HmJqG3uqsaQKssQgxCfPjDjcvpzqJ
Zn6m1Vkxqfw9xOT0CXMmP0I1onv0mo7QU12WQt9oGXnkxKdjeMnybOxJcMy4
XkOUdYTPW3oSy6WerqalX2KJQos8wpLEHsmKOYl80noNHRXPnWy+FSkc+cAz
TmeJlWjEzhwlZjltHY/7+OTb48xZDC3dxcLILdQ/ZkkawJI08yhnBhuBSLOE
qTusShV3zjjPWWY5NsQWOokvqIKWAR3PvPhhB1FxZ2OdnlfEcB1pFfgzbm1i
v0KY0xz53PzGbG3uZI0IAV0CTY8k6w6+aqJVlU4KBKH9aE+AH1rLdgjAHy4A
xNviuflInDgXw/fNvWXcI3QZn/qaTIPOCHZkZU2asbBzOuDRWmhmLawt1pSA
GPTAW1K+tEK2KUDaLfZYtRGdZe+2fZvv1W6PvQeQCqx215AAov5UIsY2oAdd
pM89UkzYRAVIxvhNxDijV8fOeh+4hlVy5H8Q5eX9B7IdFmZN5p1gflaRLwCu
gNQ2diQKqmQAxTvppFgiLsDMZbfVWS7OF1ez7Or5+Vvh6j/ZluBTE2hWPQhW
gCkfEs29E0Jt2p2CbdbVBGkd5oPPCxsPrZ1XcKLwrQCnLSn6qhmKeS1GxcjM
97KCCI34vBWrkJhpZEiwrL5sbuZvSMFsCdEUsYiGBs+ysVS+sZC6PTHpjfMb
mCNceqz+lEJcOJC69GgjOkxgZCbESjOMHDyxJyMlHPaYAFzRQZAVFjsdSUhl
PVzY4ueAbq7K7nZO+lnsYMHwtH+7ztSgZwAwEAsj4AkyzYJaT20D/0S6mYfs
gnJhm6dcs8+7NwjHgpkz5m6WOmwQKcCk7cY+fcNqwWJHc44aE/cvEG0mhqro
TgJrRz80C/PtzDwWgnpy7JW2gBGJNhP3EVomRhw59QxtG5lLKl4Fh5qHtAGP
lB2RfId2ZWl+zPHfTqgVGkDZG5iadrIzww6gntdXN/XcydqMCNXHH4T6SW5i
gCdkE0bq4tj7jLyYPkRSmZeoEO6qGeikVWnsTwQ9RJKaNQdUpZds2/w91Dax
T98rfOQFBTOwrMmOhSWTsSvRSPycJXLsg/R6CGseOSRj6cOUQ6dSF/dl0Yu6
CvR7YrwcV0IAg9AtJVQvu1c8yKiIH9XezNbp2ZF8I/HZQVe/FvYPBrjTTypR
SYi0DSB+kKyzDCSlmztnggv2K1EwjoP96CwFMSj9uldxmPgJyajOSHJBl5Ai
rKdRbiD6kYwKUnTm/X9eDmDF2JvCgi3oCpWD3lEK6ZLiMCc+mWPI9qQFgtdp
kew48yaW7gyDwMwjrchtE0VdPHXETM5gvWgQjVK0e8GiWM8iEqAwfrKMQxwR
HM2dBHfuVZZKHoKqC0BAaizks7xd3ZYIYWAdgtNiGlVHOxvhEXzjpdEiH5B2
ZEMdyM4ZbxKhlTlNm81WeqbgH3bI4iawFjgrRnkZJAY9pux1+tsSAEhkW6eS
2htjEd8c8jKpRZLAkVCagpiqFL1S9WydiQQPXEugjHa5sqxomxVxj2h1BzwZ
hRHnrfO7hp0vgDWxbSgC1HOeUhFzHPsAiAdim5HP/I+2F9ziqLYzKYz2S+Iz
m4RG8BWy75zdwI6rs9x7FcZxwCgyI6RHmynmI12rwiAmJGcJsDvZdiOJFuub
sRjyttJPzL1snMWyEJuVuyHZVFH2RvCC+DeLgGntSXZnbQspgp9jR9Wu6cXy
IXnkjaWCNsSFk3DjFAKF5w/BcSIYYJwASKdAIJ+d2O50YsqrsoUK+P740424
jiSK8PpPdp+lDp1U1s2EUjFbJOzQwphcEwTnHZrOHdhF2oJHDQ4VJ5wJjm5p
HdPSOXhIIxEthMgTgc94XiZS23FDIr1Jvj1rSTHRIy5dKAzpSN6nY4JPh7Zz
4lMX1mXndqdJCjGRkSKoKrKz7Zk/1mwpY46EBuvfAXNhel3nK/E1ihQqd+q0
xiz0TomCJjaVJ1wO3AYpPNQ1wJf3EvBagvPR2fJ+YVDttXpVcMTqaLm3y8QU
x/ywIzDRzJqo9Z4uhbnZk7UVYlGKbQExm6rZ7GME8KA1LxaoEitG1lVDCjS1
hgecUxH7NqctwyTPL7O8g42ai4eEnhICAN41z2S6hJOwjs6AHsnSyPPvHREh
PScSc8T2JVCSs+P1NOl470oSlyIg2Isw4YXJxuEO6Iaw6+oePPppsTgOVO8h
pRKvRYwhlgFslLh5IITGgim2rYEpIsHql8f81IkXireEKCxQ97FxqRz2wLJW
Xylvq/K5MEgrvuREf3tKE8LMBLxOMlRgfChbdk+ksFb0n642KwPfApEGB1Is
GvAANuZjSyKVqumOimz4HrfcBLe7t/B9qhm7eUkyxOlqHz/yz19/TYHRGrlo
HFmGiA+YaxIpzYyEuOEliRJTMEfCJcRCXbK+2Jh3gk58cbrfiVb0pIyQg1Of
UXQBtOtF6LTqzsQ7NMIoK9v2OYKrU3g+y3hbSGWzQMOwytBseKpNKx58oNuO
/Vi3TVv+0mDTOPrCW0PEw5zUpxQylhyO52m5DJjFCIpCe2y5uMjeLJMJqP3H
kUTiVUn4MupAM94lH85EdHKUMgTtX+U96OybzrHG9Db67AGhHPUE8QG8736u
nj9zZ5XtiJHb9UDn1EBeY73BBaQr5JiVOq/nGpWlCfpMngSE+gNWfx4vc2J5
JH3pS0SGVAZhb7MpIAJ7pSHAx9LTAhmz/71gCLTEHu4gbYrI3XmXVwPOL/vc
+eVDUfYeV7tMG94APkEX0RRiauC2w0TY9C5dbAWKBikSHR1+q0jfhYu8FaFq
ONBMFtjUE62QDkw04malXVKWJLdbjlLO4lwPugvqv4JOAn1UTV50sVx2POGc
8eLtVHYKjsAVAVB1eUYBCcnmyiaOa4ycYWLSEUDWvi/V89FxkKGdQhHsWHbg
V2gzEhqRbzzYKw5BsNLKHXDAPhV2ndMOP2QfYGo++Os1VFbYYvA4AxKPttmJ
llGWTixb0uwuZ31z4NDeim989iUQMxvFskSjOtwlFjgCRi248QFHgUri6FGx
yxmez60lnc+05KadhPyJ0CKmcEl641i++OEQz28bWpLtc1hd1YZYoL/dqhn/
2n7o5680U4PWJKmfkT2P8GSaQfbxI36QGvuNoGV4ynGi8bI068xDDjae1Usw
4bTzPgKwvoBrtqg8uI6SI+P4JkuamIiTrZRcAnVMZwH4kmzCQaBKgQAH3dit
YVzyBpRiOdYFZyGRCg+ATMwQbzQe5IY+OUdq6JPzX3+dZdcXyBOlf11e6Dl/
cI4P4OnwaQ2aZKaBs5lxCWIeEyB2Oh1u7Ro/hWzEHCx+vW9aY8WObU/MObJK
IUDySCMLXVWwelQmSgYPdA4ZNBCaTnOBenm3HMaH6KIVIBbVdBKcbQHxOA1j
lmm2AYKcLkJYN5ArTtwvrTi8V+yo0+HUnmGRRURgkRMW7Hh3DJgmAVjOvBUt
6kySTs/0G6hOVxSA/eA0xjh7EXfxr78LIs9FEsstp/X1NgsxRQc9JjSiyOsl
0SMxpCf/5QCVQtvUMmzZkjYlXMARCozUsiEfYgSMtQ9yCBG3dE/GjDlwDTmQ
iZ8+jaPS9ILy0YV+03m99+EAlrC9RxyM82Px6WxBtqHyFmI7uN6c7vN7UMNJ
7zzlZCIMMMuy6Cl+YWUdZQEh/oMAhlfayDpzyY6OIz2SdUwZaz8NRkpAhnQh
kv06CyUsw64xiRVcg6jQMo8ePYfo5Iz7R4/OzDsiSGBP75wXOCTkzUQ6CMgC
9W5J0LLkha/VRHEeTWLh2ddFsHmDw/aEx15YLjcTWYLh3zp687FjpyRn5vpq
obwZBABGjVQLO9pEhKjkCB7ioxWxUm+R8XtX4ifSnXA2WzqKY5nPhaizsB1v
WqTHQjJgTjGzznDI63IzuNT7nGeTF6BkkSWkF3xSNc7vXcLs7VDLLjJA8Icw
M++t3U1UAMQhNRUhdP1mgKFDbMCpTN5V4J4ppRRGihVogKFTXRvtOyNPSP9R
nlsUXjqAzj+H2Jb6f53x8gGIpUSqWnAL8Wxwip0dWe3OTS0iyZRT+vDEvCRB
Mac5zWmmG9tHrgSf2zaKU48iWeyAiUJZZiqUlXmam859OAhqJao2cAw01HQS
QrCh6DxrSFR4pnuV7JLd2IV0M95EKc1IHPZh10aO5XFWl4r7FBB6ne7S1gwp
LTKiEH0jXShgzGkyJpBZpoqBhcrN1cI8PolUw22zQxoo/YjQQUAoUYJ9FiK1
aZQ8JfW//+3fIaeNRD+Jambm/O2lQd7efb535QpLEF6ozAXwQEazcBzUK2Y6
16oQWzjlFjn1nJ7OgrdfYa33Q2hKFMkrtzP6t+4MhFLYCSTdBc+gOmojiGJJ
K1Q0QYFiOjUvbOlY96yfIoAzi6t/K+Y3FGGwjsBBxKvh3PE2ZzYjxVAhdZH9
8ATNT0wqfDprg/BBoK4mwkBFlITX6uBmM6jNeiqJ/vmayC5Dar/Lw8l5FipO
cDAmpP7TIWAwhy91a9WIjUprHPl5NxCdvx4WJJMjxUBR2HOX6ck1MPoN3bch
nlNtlcfJd1FBAuMQIpJ+fzaCX0jtcemXnp0PihvGcllEMcKFvfpSWJbqYWas
JTRNkyP1byOPc45ILlB3Uz0QhB1bRZlbDxN7WmdBZncJicVJfsyOelK0DBwT
jvYWuddl52I+9IAJUh85o+OoT7ej08QiPfiJK3K6jO7kJZS8r/1t2RZz+A32
o22baeEDC4CVc1060XqocMbRZbH6SHfXTjuHSCUNVTd3LuCTqR7yUEqVy5S5
eWKe7cMRcEkQmCzKs+Xk9iQWRJNs1p1zHHNxDmFwYsbWBZEibD1T2iQARxzV
ZQFWu/QwJU46TsVnbGayVJMzAyy54ttAnj6aEWF3mUNVLlslC48/zbi4J/Kv
4M5yy7JMM7DoEhWvibTGU5KzFChHxxbNcCGw2XvW+in5Gye2K6QmwYbCWJLc
guMiTnTBBsHDsjfOGqEl3jVCGxj9OgcIQQo4i4mQMh3Fi1Fj426vMKj9qyiK
5Z6f9l4IGF0gZEP1NJ1xF5SGyzIgOiS02NOjeuT/tDak7wQc6LVyrRkdgtdL
QBi6BtCeE2ZQvnT5fF4SKSKdYSYh1g85hjrL/i3mulMIbmLMlT1VMHZKt/XQ
nf/mrEaHk2h/V3RyXvIdwcVAe57f5WXF4MfdejwzDCbGF4cQX3SlAG8eG764
VcOIyW3VLRHoqikEue8IdmuizQegGIZFbH6XVv17sdNu12UwYmrJ7hqV/y3Z
kOUaM8564TQPorb8t/IPxgmwI+cWPSsJVPvj03B6Nh1Cd+7C5GHh3uA/9JFy
tpxk2iIlXXVujORc2k5w/qXxThcWmmVpdD02Z9XPK9H0Udxn5MSWxNuduNKI
OU60mhLODMvq2tsPYmlrSv5OootI33YuIcWpZxkfOs8Mv7j7xXMA7GaQlSSH
KDuQXJEWK5MEpg3OC5Cms4r91speHhhGpHb3RIviyHzVBIMJoMnTftY3RU4A
g8XdH+njBSmkXX96Q8uUX2fm4mvNAm36quSEAhp7AwUTMrwzkgIksxF/gAxK
ihM4FdeLdAGqwZXuVA88lsYXoLpSgCzUpCaevenMjalyKYZ7cRBLN46l3mEI
LSn9EN4MldOSd2nVRat53LDvlpzMKcnKLD8Dqk6Lq9VhObKQmqFFTlgm9noH
KfTzwN42CzqTSIfQ3EPV8lwNo3oftYyP3iLP6CJUdLl9hLK4TIOH3gsb1H6k
QrI4hU5z8MoJLaQm9DzFLVHOByL0oozgCXfEsFaxyA5X+qxsCnULcboAfXg7
kI5kSNHBFXDymcpdzxSHtcUwZUW/5X20OnYPqScrRj0K4V0V0S7vRkJDCx5G
hXNZwOw+e8qPOlmKBHcM4lnqxImsjsnT4LP9YaAHD9v5Il9bcxGwGR/uOfsq
8H2U0qllWp3SFMqqZNEjaOc72MwitpJyMY1gxOe2J9DXebJnhh49D3UgdDu7
eeN2BRvkGvodcfOV+q3ui07YJ2yEDggzXzAW+FGaJvgNKXeI2XBCH2e4dMi1
X7MT4vNzehpzTBRKYGMmzildVQhis7MkTaDqumGrOVeqPvbqYM/uhgoxGri8
cbzXLNGfc0KmeeNxFB/uocyTYldYKd5CyUagwTsJIUc10VNlvnIk55KEuGdq
4URlBlIgydWlhQsYTrfLCFKDV26NM+Oyh2TYjOsDFCtORzzSyvyRZ41Zhykg
mLJimHmTNs63e6h2n4/guRaOvmLVfO3LR/kMnN9fA8oumRyQXsqJ8y4uME07
lrAbFTRNPMQbyEkHGmkZaq+ZT2ASfBNZDDIc+pTFPl4XRiL+44yjg74Ch8Z6
lJjnDC8AX45hhQYJzlaXGK2fckrUWj2XEZz1UUZW5G+jlJsLopac7IyWU5u1
jC/OyVmlF0C9TihjwzXpcGHyVmvxDtw9S3ub35VABJx3EGHAtKrP67mkkCsX
b63kyUMduAosRJK8e5Vr1kNagVQFM6m44OhCFb3q2Gs4rDypJPcCgWmV79zD
A4Kyo/KykOrhEiDmkgQTpUXRopniQ9VYllSN4fZ5WjrmpKvxHicfGgsOTpsX
VpLJWwW+3tpwsSOlD6SJ4TTnzqfiwjwuDN/7cFjIj9VwGO1AwyGTh2JhkgGB
XY4Sst5FQJBdA6FlyhQm5EovTnsnKEPGWZdD2oeCbUe5XGuw5PzBMsqo0tQh
Z+h4cpRuBJIm4au42/w+yqmS/hM6Ac2ocwcfh1LLNquajbPEoqQttUPUK9yZ
UbrW+FFeVMRRt9Zy2jL6Yuw84vRxDq3P4S2+CDe98OYaNnhawIvecQJCA242
i70djO3gmpsMgXANo9NKKkm86o9WkFAdByk57VbcLQc+FmBuEYq/FYBJvSvB
Z+QROcclVGlrjwc/CiofuciApbCjed7HUBIYScFYcSQqw/egSHtOhCzXbNR2
wlt64hHULhQmyQ2DVNFaLc/uWnPBse/D8po4Gn5gtffEwGJHq8Hgi82dvwNM
7uO7xFthp5B9OZcbIu3CSuJ5cCmwEy9qx4SkLZqC9yBBZSTtmv4fVUbf9Ayr
O678bu5r1ZrCJ1NtoaZ1CR/4ZWqKjeXTzXTR5URnMdf7gwR+MSrG1qqDsSce
EI6blyhuEKZmWpWcsHGU/0RFljflGDVtm1BoEcfWDxKXlZY+W3+hLBr70GEH
c0urB2s7tN7F1RUn5feEiJu6RHafRtffxJEwbPFzuxw2Umw0TtJMjivzy06S
w6L4gOH4wISTKOjNoDCRqTt2R49W6FJbBzY1Q/xvIpjHZWy+WMKpzzi/K5BM
nD8XF4Js/UZlruGXo9GQMc1bzSVerkyT6fRa0rNG4Y+yhleCpe3eqJGTcaGH
c392mqqdx/SnGLWI8wEeBB4+n9vGpa2hpMT8ZnA03c/MzcwX4sVbNCEnHkhH
jNPMJWdeFSUSknLXN+Acqar0PBXxodQOXt6hklq+uhjE3+vDWikFSr4rUlvV
KbgKg6T860LcjsQ0lTpzzvR9qux9qDXK+A01lTw/5O/GLOeSLSDUp+0wryGi
WfJxSVaHt8ozHUHJ8GturFnW3owNkUHM+Z3VSyGJiQt9iuFkA8mck9otmbNl
LfJdUg7zlhMr3tktzQIjrEiv07UXKFI5Qk/POTGI5S4bkacvzt7jlX+2M6lL
7WOexdXTXTW5GadL++P4pfiUaRH1ilBbjXaMmulwSmJph85QIVHvDPlMSCUm
wU9GtJQbhXPXG4kB7vOSky/9IzQ2l0u8ADSChlfqoltZjhkj5q25K5qmwSGK
tm1aLSDQAkx/2lwNWaDFHJO0q1easVe8kNRYEl/dzFNw00l6CR6a+YaT6v94
75OvXQBFG/kUkb+YP5GUrMTHnAUN7D2MOy50SB3voLiigWBpelFCnGNajZJZ
Cuw52wXZYcczJOTk9RxAB5ZEcABGx8iKtI+StwJIcqeCPNekJWkw12dRNEcc
NFFqUmsnyjCwriDAaFju8sQl/bdwJJAsr/a82d7DroExh2ClxWWXIb0CTwtV
1OKbiTz2UZaSN6I5tk63qjxCt9zMT3MfpYg80IhSUpQPJcE5INTbi/kbZVIB
f9JgoCJ4GUe1kyOMumrB5hA6BZXjaVJZE5nhAp/PBF08zOmPHumDsJA/Lt68
nosIU9r3RsTV1TXtRteLFpfkHIbk6txHzi2+ZwJ6zzV+uGS5lxwU8aEyF8GO
2lquvpC2Scqu8q3Lp4LG9SA+6Ud3gibLiK7GdddZTKlR+InH9bpCknbnQN7R
09dR1zjXUwbbdj5uGk17VbJYgYJ3bSziBHClUp4yd7HR3VOXC+0RjEKXf4gl
oj8/8CNd7cQdo0nkx1ifAByLtSwRkH6zXM8KgDAXvhKWxbAC95Jk2JbzfeEe
wzLuytyJePGOh2pd5ejDGDApp3mSMRl2bVpR0P45NMm+EE9uqQHrNg3xZUOG
Am2UgwyBOeBW3Dm/Bht3XV+UDR9D1fgGFbw3OC4m21CSKKVGrEHd2Vz2Hsy6
QTmwB3JOh47pNtVXXg6GLl65dwega1ezEQJlIXallm62kGTytzEteTOYGQl1
z1WlUoLd02nxXZhGrFOVFXPmwUI+tho2SLjQa1jzeQ2rDpuY+fqG0ah1fsZx
OcGS1FkOR7ybvshFHPsdeDkq1ohYGF+dxyCCk0O4bTlx4gwiYGaEps44iDmG
EcpMUuZCBCEtpTyQMLwcRvyyXlqZr/oJ7QJ7BOSQzbVqdgnW10Jb2Rp6mnNV
SZ8tBR2MCgJqkITk8G6So8O2e9pgD5t8LHbfivRoJXIG7jUVmkZdN/g7MI9l
NpaONyjYWiL9Rfzvrm7yuUt9lXwZepC2nWyQpxy1oOS74h6UGk+pGsA7npVU
dLKnE78iVZrllKZ9vA0zRm5sA9Vwa6WcTI5EYtR+JQfNNVUJJqXZHGlDfseZ
ORD5EXZhneC14Z3vMhLfo0mSat55dSBqZhaSAJIqMsEFa0FLp/hZBpebNhdx
xfHstnk3SHadL8mIUD93pXZfhqqzhk30Op1t1PJuWEqGXPC6hrQz5ETTAdyV
4kTSiWji2bsxEl81batGCVvI47Z62snHESGdlvC9nrXr7VI3Lg2FTn9oeUNu
SaK60KZbYuSd0HE598wrPqEfFaJalqC5ApJwuS6dwKLZoQsXW3Y7jUzV7OnF
Qq8idqSz401OF6gl4qnvmsvi4xKFEWcXDdOxj3wb6Qjgh3CVcGAuaMYKX7K4
NQm1is5LxMILlhVwhuSbz5wHB1WZ5WbMacKnBd3mg4JgRI2jkAxCzBNBl14L
QPnxarDoTpIgbAb2hJDcvM/3viEngAo9DLOdFGXBETwOnnC+YCjsCczFElxr
p0ITdMizatwYPXHJHgvvBCYIpEQkihLiEDOEUHMtjk1Vru1qv6qglNEXgeM9
HIw9CPj4/FeuyyT+ocli/YIuJCScktkirq6Qt1FoZAcb8CJJyeDcbHeNU8at
pCgbBzN8Ih6p5tumUCtEy9KrqCKhTTrISYJbqJxJCmpmUNeJA5QPOnIkalGe
2hAm2uWo+wPysoSHO4SaNDV/rYHZIGrUD89NiBgmaJPzJfrRioDkHtyxdjcv
LeTwItb3yfceVEiip5M7LjldSjZnbAixsxnVGjCv4LahwVj8nXtM4LOjpb0i
AFOQg+byuRynCJY5dyuET1Mh7jzADeua2NkEOSm6E7kU3RsglbwSY3F1jscp
VPbJvSTfxfQKkpA2UrI2Oq2IRaZMF7khFc8wG8dKWPPxHQJlq3lX1i6B7cdL
31ZberTQXZuNiFiThzdvYDuJ6xHf3CJjjqzdrlwCFwV2DZYT958pCyagty5f
cFL/xTrpHW8XX/F2WJ4uhiVncjkVwveT/tEdF2QN6MPzuxO290jWfS2nytAc
TxcXxpECiqW4SgSFCf4SLCa8xEhXwNTxWN7RZDC7Hzs7GTnqzFEoweTniEv4
9HfHwMvG6Ze0nfVsbIXO9LTFmHOVT+K7bK2mO/CyRaMIBA60r7MmiS9UcfHD
uwWm/dI1GZuTUtmxrbmWqKP4oZyBFfWVITyBgWKeDIas97kTT245BYX0pXTI
jRjrdJUPnWOxzsFFyCRbd2o0R2X2Mvlnkcjm61+ihlOL+qS8EP0yY19BEBVH
btdn+tarYwa1B0pV+vDjwVr8LjkHgmUELKDJBldERr3IE4ofvVZJhaWijIc9
oIqbOOpAtBiXd8X9ddb5koDGzMSFD178xsLX1oDSohGWDV4pp1WQQb6JfNiF
UmVW1pityJJuJA27cAfWr5VFXq+GzufSMJ03kwBhUjbFPQt31YDENa+7Czni
y4hoGGTFPRL83MakJe5VlXOmy9eQgc4z4R+AQ+a3tBBi8rDljaI1SRtTio70
9lXU4schu6hXXGixbA4PNi3fC3YBxj3nFhVDK+XZsavOXccyBZkkM3OAkRQh
AUmmL495IHQtGAEloILDoObHLdgAFHdcmYqMX29Xu3L+A29iF6j0xFeybITc
uij/9gWbmAsnlMTwg+Gt9I28xwcqfkO5i8sXiWGVP+Go69PYBbWwEtnh4bv4
DWvqo+s5BvXx44Lf8qNu2lD6juauYOa4Sbv33mpyej5sXAeGSYe8pi5MbSqb
A6N2Obm8JibB6lpQJDpkV+VlfUhtQdYpny9WTEnzjfTuUDV1KeDS55SwM1xE
feity30IaOycow/M60fIIIcCVIDI+qjKCckdi6p1716IoMrRumy7ft4NnCCO
5ulNO2whgOF+4WaT/M2xmncjWSNkJVmJsbCri4l3XbDvh9/klpQXSdriU9wv
w0pBuFtmqPZxlCNINypjYVUrmQWsUuGJHEMAv2SusXdmb6K/TTPS8JKGCu89
tN/GZdaEk/H2iESbNMVkWk5C5jkB+LCY1CoRecWJmIwPCEqVkeOXb4TCZ/aS
0GnD2pL2Oiaphsckf2gWaHaSIw7meubHZhfHkHcCjCfe3IBcGux5hGfV4RJr
Z3DHXVMWvHkcOj9MAk18P2pih1BvLKxEGD0of3YN7RC/WYt5YqhLpDz5Om6p
NToML6WG4kFCx1ghp9goTfH2TnMaXlMLPOPPQhlQyAuBje64Bjuaa797OCs6
54/wmRpwndFPqajq0lAcuqV8XjFopqirRgnexCyJJHrN4+t84JKUWsYAM4uk
ra/vt8T191HHceJJ7bix9qwWv/hIEZkzzmFD+Fe38nH8iKSpqAMx94WIKwIh
jTmxsHDH7HRZl55zQESurslV+jvCsXi/70o6ZCD+w2sjHRh3P87MSM2xv1lo
LqI4bmeeVFZpA2Ch3JTkXkwlNii9z7lDZPBmaN658YFX55GbMcbxUY0xupHi
dnlF0rTnIS51F79MiA/cNrtuXMWuZSmokYQ70SMIV8gsaFakclqI40Wgs+rB
1wdvo4tKe8EDnLtJT4uagYplzzEaki7lWt1hfRxjYPM4uHIkcd3oOMQKeG8S
MRgRoNZMW7ejcRBByPTVUBbILzkTtwgNe3HLPvaf0JKO1gsj84HQh0a7/DuV
BIochClChx9j1tYWOH0+yyTfYcLFJ0N7g10H9Cx8qm7wmXMRqyOgF74+CA3E
VZGxTz0MtUisZh2PX4gllg7bNGKd2UNpjnG6FAEFIRQlLMQk7U3huCSELXSf
uxnaOBcn8k5C9AgtO7xO7oaF7+M4G8C/pWflr5PpI3S3a3Zczz6VpOXfk7PS
5FDtyT1V0enei5Rln8xLffvHJ2k9yi9z8y/iOKaP+S2un6QR8afs09z9F35L
/vuU/qARHj3yoUkUTtK5fPLv/uHIEoezJMZ06t+cg6FjW8q9jcm1ik+/DTty
pBdyU/NTbWgeNzM/NjIp/zoLntANKaYjF+qvuJnG8X/0Y36sWxmnTfCjf9A3
AEUvBYpfBITHRW+2+GQWGnrzSzlOFzCLoDxEvIyL9y6c+ggdD3wedxecpV1s
jvzreTBDvBTCpC+F4LdRHLzIgR8amrQfoW87yr2TPoZSLuu6oev8PPblqf25
zKN3FJyScb+BYzGlPtf8E8O+JrmufUOPHn7ZAV8pV01O4m1I8+Np/AU2R/LG
H37EM6nX9tqHPnrjskAQJD14rKPvN5rkzQ//XroDH41fsoMR/uzeXRH/ys+S
sV2adOGn6f71EzlCPZhwvaO985FOo8tJMranu7zr8JrTGb+7xr2wUd5g495e
c6wXI9jvb+B2CQT98X4XwTafuP35DD3R9ZWPM3b+hltG3BWV1oLSSa0m/yY8
k17qS+S0fF78QHBqMrX43l8efGMBA99RN8htCr56vvWpS9DV8V/jorKWdw8c
4bOydjVxRNPhkFeh/w2XsSAKoIcl7eZoTjdEhDxt/Qgv5gSHT3yAS8f5P46R
tH+deGu6UImu40HPXeRsNtKDXkw0056ZNRI++Y1Zad9RKMdPEJ14sRpBdDtz
hRCuUS99fRH3qE9e5zCLCihGNboyt3f4+id++8+P2HThc0n5KbDxg0sV8vx9
1Dc74I16riUlctJosR3VAkg5EnxRnPfzyTzXpFZcBlVA8EE12tPgr4K7n/0T
8k6RU5UVd8TRiF1+Mq/U1uudk6ocvWTp6OL1xUscEaTx8Uzmz0/9K0xzK5U7
O9L7mJXT5k983y7pDuW1OKcDSTe2ia7jXCtr4UbiZlMP9QKdUtnjbuGftIjh
k3iifltnf0p/PqSzeTDpmh9ewZcO/HyyMbe+hj6qz3LK/JPr7h7D0CgoF+n1
KaUdjc2boHJlWmez3/QoquSZS0/LhxX3gvtfaU/2I9EGnevPIPT0jX7LLrtj
p8oVOYf+yDOfp+J1OF7YZnvfvz+UUkFxRI1fuJeLOUKDl8/1dTmejT2JE70z
HkQKyUpHwME1K36aAgiN4mnWUCRpDjDCOu3WdyytXmIs4hrtHT8Vx78dNb0j
jkghT2pKJg6FKbSRLK9cO9zgm+CER3n4EEoOw5dHSUvymfYjJ2DVr04i5CE1
ZFpEgN1xgaSJNIWxo/4BnDI6n2faqPwsxPTdKwilO/5753jwrcoFQQXp+CXA
hUf7LzGXIUe9u83fMxLkihj4b48UIozaukrFeuNfNefeOBAVajLIb+7P3K1+
Ps8GeU1N1BL2qe8bf9CrR24+Wu574Dff/NW7GL4EWR1NtAw/1u/8e5WSpjyO
rZ6mvYG4bcJ4oyeQWSpd4hZBGBZA7fTt1fnlawFtp4uLd+fXs+hlg+Jy+jTZ
YYybZ5XT7crMVLuyp1/SOIz3Iao9YH/k0+l2J0suK86rUn3hiYPssxDxp8XC
HI1f/3H8pajxy2R27LEVQEeSdO6wn45Cn6y5yWrSUtang+fovtnFX7pT1KAS
80gSq4qvlbDx+OXOhz1Tks6ZwSJJfGG/BUZ5M/hV8d0EWng26sZ8pD2bHPuc
mfO7tplxwvVMWHQ5rI/DnTriJEZ9lrzXh6S7JGGCJHhW2p3aN6VW8RODBama
KndWowJRkBJ9kHrOV5XkDIaRIsdfjTuFJ+mpaW7q6j+BemcHQnsSAF9JV3xs
6IxDDNXeucGwL6du4VHXAglteZAsryUo4fchyP+hRxlaJaBa3qbuZH2oontq
8OpI0ohN+g7kKuoFoBsWaz57D9SNcApMJfeej3HvdILJae8sb6QQQuDuDJJt
rIVDoVbyU9LD6rCGGXnhzWpwXjNOzxLRH6qNg0dsygcW9b3K4n7BftDQ0yMk
y9EmsSfX078EUztSap28SBUl0Qe9t3ylEHvnormfkIZBfwhX4yuEus/UCRlX
JbnstsX3b368ei4osBq9/WCV7JN/rbd7HJyRVrCyX0AStkaGyZvx0Mw4vyCo
zy7DtGXaVMtaH22PJBigDeTbx4//8O7lxR++e/ItigMPekt9TqZlD4m0UbfT
E4P0B3mH0qi7UFNnEy+qdLm0vrZNqy7HvU313bUPtbr52lyevz7/DVpFC9W6
kSt9+tH/Bd6jdZxglAAA

-->

</rfc>
