<?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.6.17 (Ruby 3.1.2) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ma-quic-mpqoe-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <front>
    <title abbrev="multipath-quic">An Advanced Scheduling Option for Multipath QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ma-quic-mpqoe-01"/>
    <author initials="Y." surname="Ma" fullname="Yunfei Ma">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>yunfei.ma@alibaba-inc.com</email>
      </address>
    </author>
    <author initials="Y." surname="Liu" fullname="Yanmei Liu">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>miaoji.lym@alibaba-inc.com</email>
      </address>
    </author>
    <author initials="C." surname="Huitema" fullname="Christian Huitema">
      <organization>Private Octopus Inc.</organization>
      <address>
        <email>huitema@huitema.net</email>
      </address>
    </author>
    <author initials="X." surname="Yu" fullname="Xiaobo Yu">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>shibo.yxb@alibaba-inc.com</email>
      </address>
    </author>
    <date/>
    <area>Transport</area>
    <workgroup>QUIC</workgroup>
    <abstract>
      <t>This document specifies an advanced scheduling option for multipath QUIC
protocol. The goal is to enable the use of multipath QUIC for applications that
have tight latency constraints. For general purpose multipath packet
scheduling, please refer to <xref target="I-D.bonaventure-iccrg-schedulers"/>.</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/yfmascgy/draft-ma-quic-advance-scheduling"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Multi-path QUIC transport, which allows the simultaneous usage of multiple
paths for a single QUIC connection, has recently gained attention
<xref target="QUIC-MULTIPATH"/>. In practice, however, it turns out to be not
straightforward to apply multipath QUIC to applications that have tight latency
constraints (e.g., video streaming and gaming) with only basic scheduling
options <xref target="I-D.bonaventure-iccrg-schedulers"/>. In this draft, we introduce an
advanced scheduling option for the usage of multi-path QUIC in
latency-constraint applications.</t>
      <t>The proposed scheduling option in this draft includes two major components: (1)
parallel transmission of duplicate data on several paths, and (2) a feedback
mechanism to make the scheduling strategy adaptive based on the state of the
application or the state of the network.</t>
    </section>
    <section anchor="multipath-definition">
      <name>Conventions and Definitions</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>We assume that the reader is familiar with the terminology used in
<xref target="QUIC-TRANSPORT"/>.</t>
    </section>
    <section anchor="packet-scheduling">
      <name>Packet scheduling</name>
      <section anchor="general-purpose-packet-scheduling">
        <name>General-purpose Packet Scheduling</name>
        <t>Experience with multipath transport protocols shows that the packet scheduler
can have a huge impact on the transport performance. In general-purpose
multipath scheduling strategies <xref target="I-D.bonaventure-iccrg-schedulers"/>, whether
it is round-robin, strict priority, or lowest round-trip-time, we often face a
dilemma: On one hand, in order to aggregate bandwidth, we need to split traffic
across multiple paths, but in doing so, the overall latency is hurt by the
slower path as faster paths have to wait for packets scheduled on it to be
received. On the other hand, if we choose to pick only one path to use at a
time, then we lose not only the benefit of bandwidth aggregation, but also the
reliability of using multipath as the path condition of a wireless link can
vary quickly. A fundamental problem with multipath scheduling is the
path head-of-line (HoL) blocking when paths have large delay difference. Deployment
experience shows that multi-path HoL blocking has negative impact on the
quality of experience of applications that have tight latency constraints, such
as video streaming <xref target="XLINK"/>.</t>
      </section>
      <section anchor="path-head-of-line-blocking-issues-in-multi-path-scheduling">
        <name>Path head-of-line blocking issues in multi-path scheduling</name>
        <t>The path head-of-line blocking happens when a scheduler splits an application's
traffic across multiple paths, on one of which, the transmitted packets take
significantly longer time to deliver due to either large path delay or high
packet loss rate on that path.  As shown in <xref target="fig-hol-blocking"/>, at t=t1, a
sender transmits a media chunk that consists of three packets (pkt1, pkt2, and
pkt3) with two paths (path1 and path2), where path2 has much longer delay than
path1. Due to the limit of path1's congestion window, after sending pkt1 on
path1, the sender has to switch to path2 for transmitting pkt2. When the
congestion window of path1 becomes available later, the sender transmits pkt3
on it. At t=t2, pk1 and pkt3 on path1 are received by the receiver, but pkt2 on
path2 is still in flight even though it is sent before pkt3, causing
out-of-order delivery. The out-of-order packet, pkt3, is not eligible to be
submitted to the application and the client on the receiver-side has to wait
for pkt2 to process the entire media chunk. In other words, the data
transmission from the application's point of view is blocked by pkt2.</t>
        <figure anchor="fig-hol-blocking">
          <name>Head-of-line blocking in multipath</name>
          <artwork><![CDATA[
 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender |  pkt3  pkt1                      | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |          pkt2                            |
       +----------------------------------------->
                           path2
                        time t=t1

 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender |                       pkt3  pkt1 | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |                pkt2                      |
       +----------------------------------------->
                           path2
                        time t=t2

]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="proposed-advanced-scheduling-option">
      <name>Proposed advanced scheduling option</name>
      <t>To cope with path HoL blocking, we propose an advanced scheduling option, which
includes two major components: (1) parallel transmission of duplicate data on
several paths, and (2) a feedback mechanism to make the scheduling strategy
adaptive based on the state of the application or the state of the network.</t>
      <section anchor="parallel-transmission-of-duplicate-data-on-several-paths">
        <name>Parallel transmission of duplicate data on several paths</name>
        <t>The main solution to overcome path HoL blocking is to allow concurrent transmission
of packets that contain duplicate copies of data on multiple paths. In doing
so, we can avoid the excessive delay when a packet becomes stagnant on a path
that has large delay or high loss rate becuase a copy of it on another path
could arrive instead. Such a transmission mode can be put into two categories:
(1) full-redundancy mode and (2) re-injection mode.</t>
        <section anchor="full-redundancy-transmission">
          <name>Full-redundancy transmission</name>
          <t>In full-redundancy mode, a scheduler sends duplicate copies of data on every
path that has available congestion window. As shown in
<xref target="fig-full-redundancy-mode"/>, pkt1, pkt2, and pkt3 contain original copies of a
media chunk, while pkt1', pkt2', and pkt3' contain the corresponding duplicate
copies. In multipath QUIC <xref target="QUIC-MULTIPATH"/>, pktN and pktN' are either in
different packet number spaces or in the same packet number space but assigned
with different packet numbers. The media data carried in those packets should
be in the same QUIC stream so that only a single copy of data is delivered to
the receiver. The full redundancy mode takes the advantage of path diversity to
obtain lowest possible latency. However, it does not aggregate bandwidth of
multiple paths. When the required data rate is larger than the minimum
bandwidth of paths, such a full-redundancy mode is not recommended.</t>
          <figure anchor="fig-full-redundancy-mode">
            <name>Full-redundancy transmission mode</name>
            <artwork><![CDATA[
 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender |  pkt3  pkt2  pkt1                | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |     pkt3' pkt2' pkt1'                   |
       +----------------------------------------->
                           path2


]]></artwork>
          </figure>
        </section>
        <section anchor="re-injection-mode">
          <name>Re-injection mode</name>
          <t>In re-injection mode, a scheduler sends duplicated content of unacknowledged
packets from one path into another one without waiting for the loss recovery on
the original path. For example, a scheduler decides to re-send the content of a
packet on another path if the ACK of it is not received after a certain time
threshold. In another example, when a sender finishes sending packets carrying
the content of a video chunk, it immediately starts re-sending those previously
sent copies on a different path before moving on to send the next video chunk.
Re-injection mode is illustrated in <xref target="fig-reinjection-mode"/>, where path2 has a
much larger delay than path1. After a certain time threshold, the sender
detects that the ACK of pkt2 is not received, to avoid excessive waiting by the
receiver, it re-injects pkt2' on the faster path even before the loss recovery
kicks in on the slower path. Similar to what is discussed above, in multipath
QUIC <xref target="QUIC-MULTIPATH"/>, pktN and the re-injected pktN' are either in different
packet number spaces or in the same packet number space but assigned with
different packet numbers. The media data carried in those packets should be in
the same QUIC stream so that only a single copy of data is eventually delivered
to the receiver. Re-injection mode strikes a balance between transmission
latency and aggregated bandwidth. It is also flexible to use as one can tune
the parameters such as the time threshold to optimize for various applications.</t>
          <figure anchor="fig-reinjection-mode">
            <name>Re-injection transmission mode</name>
            <artwork><![CDATA[
 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender | pkt2'                 pkt3  pkt1 | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |                pkt2                      |
       +----------------------------------------->
                           path2

]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="qoe-feedback">
        <name>QoE Feedback</name>
        <t>The second major component is a QoE feedback mechanism that enables a sender to
adapt its scheduling strategy. On one hand, applications may have different QoE
requirements---the interactive applications are delay sensitive, while the
video streaming applications are more throughput sensitive. There is thus a
trend of cross-layer design that takes applications' demands into account when
managing paths or scheduling packets. On the other hand, the network conditions
(e.g., bandwidth, loss rate, and latency), as well as the application states
(e.g., video bitrate, video buffer level) are constantly changing, so it is
desired to have a scheduling strategy that is adaptive to those conditions.</t>
        <t>The QoE feedback is used to fully support adaptive multipath scheduling and is
carried in the QOE_CONTROL_SIGNALS frames <xref target="fig-qoe-control-signals-format"/>. A
sender can adjust its scheduling strategy based on the received QoE feedback.
The QOE_CONTROL_SIGNALS frames can include two types of information that is
needed by the scheduler: (1) application-level information and (2) the
network-level information.  The frequency of such feedback should be controlled
to limit the amount of extra packets. The QoE control signal allows a
synchronization of viewpoints between two endhosts.  The network-level
information can include interface types and interface priorities. For example,
a client on the cellphone can inform a server at this moment if a wifi
interface is more preferred than a 5G interface. The application-level
information can include video bitrate, video framerate, video buffer level,
etc., which can inform the server how likely a future rebuffering event might
happen. It is up to the application to determine the interpretation of QoE
control signals.</t>
      </section>
    </section>
    <section anchor="combination-of-the-two-components">
      <name>Combination of the two components.</name>
      <t>The two components can be used independently, but are recommended to work hand
in hand. Parrallel transmission of duplicate data enables quicker recovery from
out-of-order delivery. However, the downside of such a strategy is the
additional traffic cost when it is aggressively used. One example is to control
traffic redundancy when packet re-injection is implemented to improve
multi-path transport performance <xref target="XLINK"/>. As discussed above, the problem
with packet re-injection is that it MAY introduce a lot of redundant packets,
increasing traffic cost. Indeed, redundant packets are not always needed as the
video player MAY cache video chunks. Therefore, if the number of cached frames
is large in the video player, the play-time left until the next possible
re-buffering is long, and hence, the urgency of using re-injection is low. On
the contrary, if the number of cached frames is small in the video player, the
time left until the next possible re-buffering is short and, hence, the urgency
of using re-injection is high. Knowing that the client video player's buffer
occupancy level is an indicator of the user-perceived QoE, one can capture the
related information (such as number of cached frames and framerate) in client,
encapsulate the information in QoE_CONTROL_SIGNAL and send it back to the
server to decide when to turn on or turn off its re-injection usage.</t>
    </section>
    <section anchor="multipath-frames">
      <name>New frames</name>
      <t>All the new frames MUST be sent in 1-RTT packet, and MUST NOT use other
encryption levels.</t>
      <t>If an endpoint receives MP frames from packets of other encryption levels, it
MUST return MP_PROTOCOL_VIOLATION as a connection error and close the
connection.</t>
      <section anchor="qoe-frame">
        <name>QOE_CONTROL_SIGNALS frame</name>
        <t>QOE_CONTROL_SIGNALS frame is used to carry quality of experience (QoE)
information. A typical use of such information is to provide feedback to help
application-aware scheduling. Note that different applications may have very
different needs, the interpretation of the QoE control signal can be up to the
users. QOE_CONTROL_SIGNALS frames are formatted as shown in
<xref target="fig-qoe-control-signals-format"/>.</t>
        <figure anchor="fig-qoe-control-signals-format">
          <name>QOE_CONTROL_SIGNALS Frame Format</name>
          <artwork><![CDATA[
  QOE_CONTROL_SIGNALS Frame {
    Type (i) = TBD-02 (experiments use 0xbaba02),
    Path Identifier (..),
    QoE Control Signals Length(8),
    QoE Control Signals (..)
  }
]]></artwork>
        </figure>
        <t>Path Identifier: An identifier of the path, which is defined in
<xref target="QUIC-MULTIPATH"/>.</t>
        <t>QOE_CONTROL_SIGNALS frames may be received out of order, peers SHOULD pass them
to the application as they arrive.  Although QOE_CONTROL_SIGNALS frames are not
retransmitted upon loss detection, they are ack-eliciting <xref target="QUIC-RECOVERY"/>.</t>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="contributor">
      <name>Contributor</name>
      <t>This document is a collaboration of authors that combines works from several proposals. Further contributors that were also involved are:
* Dapeng Liu
* Juan Deng</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
    </section>
    <section anchor="appendixa-difference-from-past-proposals">
      <name>Appendix.A Difference from past proposals</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="QUIC-MULTIPATH">
          <front>
            <title>Multipath Extension for QUIC</title>
            <author initials="Y." surname="Liu" fullname="Yanmei Liu">
              <organization>Alibaba</organization>
            </author>
            <author initials="Y." surname="Ma" fullname="Yunfei Ma">
              <organization>Alibaba</organization>
            </author>
            <author initials="Q." surname="Coninck" fullname="Quentin De Conick">
              <organization>UCLeuven</organization>
            </author>
            <author initials="Q." surname="Bonaventure" fullname="Olivier Bonaventure">
              <organization>UCLeuven</organization>
            </author>
            <author initials="C." surname="Huitema" fullname="Christian Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
              <organization>Ericsson</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath"/>
        </reference>
        <reference anchor="QUIC-TRANSPORT">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances.  Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="QUIC-TLS">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="QUIC-RECOVERY">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="I-D.bonaventure-iccrg-schedulers">
          <front>
            <title>Multipath schedulers</title>
            <author fullname="Olivier Bonaventure" initials="O." surname="Bonaventure">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Maxime Piraux" initials="M." surname="Piraux">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Quentin De Coninck" initials="Q." surname="De Coninck">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Matthieu Baerts" initials="M." surname="Baerts">
              <organization>Tessares</organization>
            </author>
            <author fullname="Christoph Paasch" initials="C." surname="Paasch">
              <organization>Apple</organization>
            </author>
            <author fullname="Markus Amend" initials="M." surname="Amend">
              <organization>Deutsche Telekom</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <abstract>
              <t>   This document proposes a series of abstract packet schedulers for
   multipath transport protocols equipped with a congestion controller.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bonaventure-iccrg-schedulers-02"/>
        </reference>
        <reference anchor="XLINK" target="https://dl.acm.org/doi/10.1145/3452296.3472893">
          <front>
            <title>XLINK: QoE-driven multi-path QUIC transport in large-scale video services</title>
            <author initials="Z." surname="Zheng">
              <organization/>
            </author>
            <author initials="Y." surname="Ma">
              <organization/>
            </author>
            <author initials="Y." surname="Liu">
              <organization/>
            </author>
            <author initials="F." surname="Yang">
              <organization/>
            </author>
            <author initials="Z." surname="Li">
              <organization/>
            </author>
            <author initials="Y." surname="Zhang">
              <organization/>
            </author>
            <author initials="W." surname="Shi">
              <organization/>
            </author>
            <author initials="W." surname="Chen">
              <organization/>
            </author>
            <author initials="D." surname="Li">
              <organization/>
            </author>
            <author initials="Q." surname="An">
              <organization/>
            </author>
            <author initials="H." surname="Hong">
              <organization/>
            </author>
            <author initials="H." surname="Liu">
              <organization/>
            </author>
            <author initials="M." surname="Zhang">
              <organization/>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1b63Ibt5L+j6fAyj8snXAYSUn2JKrK1mEkOfZGF0dSTi5b
Wy5wBiRhzQyYwYxoHsepfY19vX2S/boBzAxvks9eavNjVZWYnAvQ6MvXXzfA
JElEbepcn8i9USlH2YMqU53J23SmsyY35VRez2tjSzmxlbxs8trMVT2T3//w
6nRPqPG40g8nsojXk18bk4rMpqUqMGRWqUmdFIovJ8X8V6uTwyORqRo335+N
7s4/iBRfprZankhXZ8LMqxNZV42rjw8Pvzo8FqrS6kTeVap0c1vVYmGr+2ll
m/kJyyBcoar6za+NrbU7kROVOy3q5dxOKzWfmfSNWxZjm7e3XK3K7I3KbQkJ
ltqJuTmR/1LbdCAdhq/0xOHTsvAfsJBCzefQwr8KoZp6ZqsTIWWC/6Q0JUb9
eSgvFX/1K/65KSfaxGu2mp7IUW7GaqzkqzId8lVdKJNjdn50WKi/KP9EYvBE
aouNGS5M059ClQWmiBcfnaMwyr41w3xZPD7J6VC+bEyNt3oTnc4q42qjypV7
PN/ryjzAbvI6re28cRvzzvwLfwn/Dktdr0740xCq6s31EwQd23jt0TW5mRnb
4fLdeGNJorRVoWrzoE8E3iD/SC5/uLh79Xp09/KEx4i+3nny+btaly56uPdr
enLFSemC05XRzpQT64eSkKzWFZaWnJGfR3c3up4Eh4+T8POd/9BfEv7dtPJO
S69rZudIl2p9oBWv/Lhxvh/KU1tCtfdrg33f6LI2pTzT/EDvPg/6w+mFbh50
uXPUb2ypcL9uKr028nVuHoyutj7xEWOvOfFTjtyOutOZN2a4HMrvGj3L9cKU
2dokl6Z6q7bd5jnOK5M6Z8vWL+9uRle3r69v7k5kNUm/Ojw87G5d3MaLR+3F
m/PT67+e3/wc7xwLIcgXW4eHOyZnw3GnusSkaTVNnEdyXTkOip8uXl19txoL
/pL83p4nGVShS4/nSQv0AOQAv1CDzFU11RhW5Vo+mExbiowHk2q3t83PveZ+
GcpfZrqcrl7t+2qyJRDCtRdDCoXpxogXZuPdX2YbD/44lLczs3HtdNb5kb94
tjki3HW09tRLeJldn+PlFqkv+9J4NDk+PD5KvvTKJy0CM/ZmdT13J59+muVD
lRZDeMunmTWfHh0Oj44+/+LTzz7/4vj4q38cfvb5n4+//OqzPSGSJJFq7GCT
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
taeiI367uhMjLpl/EMbtr/8EHU7hQPw+AAA=

-->

</rfc>
