<?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.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lim-rtp-apv-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="APVPF">RTP payload format for APV</title>
    <seriesInfo name="Internet-Draft" value="draft-lim-rtp-apv-00"/>
    <author initials="Y." surname="Lim" fullname="Youngkwon Lim">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>6105 Tennyson Pkwy, Ste 300</street>
          <city>Plano, TX</city>
          <code>75024</code>
          <country>USA</country>
        </postal>
        <email>yklwhite@gmail.com</email>
      </address>
    </author>
    <author initials="M." surname="Park" fullname="Minwoo Park">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>34, Seongchon-gil, Seocho-gu</street>
          <city>Seoul</city>
          <code>3573</code>
          <country>Republic of Korea</country>
        </postal>
        <email>m.w.park@samsung.com</email>
      </address>
    </author>
    <author initials="M." surname="Budagavi" fullname="Madhukar Budagavi">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>6105 Tennyson Pkwy, Ste 300</street>
          <city>Plano, TX</city>
          <code>75024</code>
          <country>USA</country>
        </postal>
        <email>m.budagavi@samsung.com</email>
      </address>
    </author>
    <author initials="R." surname="Joshi" fullname="Rajan Joshi">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>11488 Tree Hollow Ln</street>
          <city>San Diego, CA</city>
          <code>92128</code>
          <country>USA</country>
        </postal>
        <email>rajan_joshi@ieee.org</email>
      </address>
    </author>
    <author initials="K." surname="Choi" fullname="Kwang Pyo Choi">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>34, Seongchon-gil, Seocho-gu</street>
          <city>Seoul</city>
          <code>3573</code>
          <country>Republic of Korea</country>
        </postal>
        <email>kwangpyo.choi@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>ART</area>
    <workgroup>avtcore</workgroup>
    <keyword>payload format</keyword>
    <keyword>mezzanine codec</keyword>
    <keyword>visually lossless compression</keyword>
    <abstract>
      <?line 87?>

<t>This document describes RTP payload format for bitstream encoded with Advanced Professional Video (APC) codec.</t>
    </abstract>
  </front>
  <middle>
    <?line 91?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the RTP payload format for bitstream encoded with Advanced Professional Video (APV) codec <xref target="I-D.lim-apv"/>. This document defines how to packetize bitstream encoded with APV codec and set the payload header fields. This document also defines how to set the fields of RTP payload header when it carries bitstream encoded with APV codec.The APV codec is a professional video codec that was developed in response to the need for high quality video recording and post production.</t>
      <t>The primary purpose of the APV codec is for use in professional video recording and editing workflows for various types of content. The APV codec supports the following features:</t>
      <ul spacing="normal">
        <li>
          <t>Perceptually lossless video quality that is close to raw video quality</t>
        </li>
        <li>
          <t>Low complexity and high throughput intra frame only coding without pixel domain prediction</t>
        </li>
        <li>
          <t>Support for high bit-rates up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme</t>
        </li>
        <li>
          <t>Frame tiling for immersive content and for enabling parallel encoding and decoding</t>
        </li>
        <li>
          <t>Support for various chroma sampling formats from 4:2:2 to 4:4:4, and bit-depths from 10 to 16</t>
        </li>
        <li>
          <t>Support for multiple decoding and re-encoding without severe visual quality degradation</t>
        </li>
      </ul>
    </section>
    <section anchor="terms">
      <name>Terms</name>
      <section anchor="terms-and-definitions">
        <name>Terms and definitions</name>
        <ul spacing="normal">
          <li>
            <t>coded frame: a coded representation of a frame containing all macroblocks of the frame</t>
          </li>
          <li>
            <t>coded representation: a data element as represented in its coded form</t>
          </li>
          <li>
            <t>decoder: an embodiment of a decoding process</t>
          </li>
          <li>
            <t>decoding process: a process specified that reads a bitstream and derives decoded frames from it</t>
          </li>
          <li>
            <t>encoder: an embodiment of an encoding process</t>
          </li>
          <li>
            <t>encoding process: a process that produces a bitstream conforming to <xref target="I-D.lim-apv"/></t>
          </li>
          <li>
            <t>frame: an array of luma samples and two corresponding arrays of chroma samples in 4:2:2, and 4:4:4 color format</t>
          </li>
          <li>
            <t>Frame Data: a syntax structure containing coded representation of a frame</t>
          </li>
          <li>
            <t>Level: a defined set of constraints on the values that may be taken by the syntax elements and variables of this document, or the value of a transform coefficient prior to scaling</t>
          </li>
          <li>
            <t>MB (macroblock): square block of luma samples and two corresponding blocks of chroma samples of a frame</t>
          </li>
          <li>
            <t>Partitioning: a division of a set into subsets such that each element of the set is in exactly one of the subsets</t>
          </li>
          <li>
            <t>Profile: a specified subset of the syntax of this document</t>
          </li>
          <li>
            <t>syntax element: an element of data represented in the bitstream</t>
          </li>
          <li>
            <t>syntax structure: zero or more syntax elements present together in the bitstream in a specified order</t>
          </li>
          <li>
            <t>tile: a rectangular region of MBs within a particular tile column and a particular tile row in a frame</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions">
      <name>Conventions used in this document</name>
      <section anchor="general">
        <name>General</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 <xref target="RFC2119"/>.</t>
      </section>
    </section>
    <section anchor="overview-of-apv">
      <name>Overview of APV</name>
      <section anchor="overview-of-apv-coding-tools">
        <name>Overview of APV coding tools</name>
        <t>The APV codec encodes each frame individually from other frames so that there are no coding dependencies among the frames. A frame is divided into one or more rectangular tiles. Each tiles are also encoded independently from other tiles so that parallel processing of tiles is possible. A tile is further divided into a 16 pixel x 16 pixel size macroblock whch include 4 transform blocks of 8 pixel x 8 pixel. Each transform block is transformed using a fixed point DCT and then transformed coefficients are quantized using uniform scalar quantizer. A prediction is applied to the quantized coefficients in the frequency domain. Finally, entropy coding specially designed to support very high throughput is applied.</t>
      </section>
      <section anchor="structure-of-apv-frame-data">
        <name>Structure of APV frame data</name>
        <t>As the APV codec encodes each frame independently from other frames, the coded data of each individual frame, frame data, is selfcontained. The frame data is consisted of a frame header, a series of encoded tile data, a metadata and a filler data as shown in <xref target="APV-frame_structure"/>. Metadata and filler data are optional. An encoded tile data is consist of tile_size_minus1 field and tile() syntax structure defined in section 5.3.7 of <xref target="I-D.lim-apv"/>.</t>
        <figure anchor="APV-frame_structure">
          <name>A structure of APV frame data</name>
          <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|frame header|tile data|tile data|...|tile data| metadata |filler data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <section anchor="frame-header">
          <name>Frame Header</name>
          <t>Frame header as defined in section 5.3.2 of <xref target="I-D.lim-apv"/> provides basic information for decoder configuration and bitstream processing. It includes profile and level of the required decoder, width and height of frame, chroma format and bit depths of pixel data and so on. It also provide distance of capture time between the previously encoded frame and the current frame to indirectly indicate frame rates of encoded video.</t>
        </section>
        <section anchor="tile-data">
          <name>Tile Data</name>
          <t>Tile data consist of a tile_size_minus1 field and tile() syntax structure. tile() syntax structure includes tile_header and encoded data of Y, Cb and Cr components for the tile. Each tile data contains the tile offset information that allows direct access to any tile for random access and parallel decoding of tiles.</t>
        </section>
        <section anchor="metadata">
          <name>Metadata</name>
          <t>Various metadata can be optionally included in each frame through metadata() syntax structure defined in section 5.3.5 of <xref target="I-D.lim-apv"/>. For example, color description or HDR information can be included as metadata</t>
        </section>
        <section anchor="filler-data">
          <name>Filler Data</name>
          <t>Filler data can be optionally added at the end of encoded frame data as needed. It will be a series of 0xFF as defined in section 5.3.6 of <xref target="I-D.lim-apv"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="packetizationrule">
      <name>Packetization rules</name>
      <section anchor="Generalrules">
        <name>General rules</name>
        <t>The start of an APV Frame Data MUST be alinged with the start of the payload of an RTP packet. The first byte of an APV Frame Data MUST be the first byte of the RTP packet payload after the payload header. There MUST be no RTP packet carrying data from two different APV Frame Data.</t>
      </section>
      <section anchor="simplemode">
        <name>Simple mode</name>
        <t>In this mode an APV Frame Data can be fragmented anywhere. The payload of RTP packets does not have to be aligned with begining or end of any particular internal data structure of an APV Frame Data. An example of this mode is shown in <xref target="simpleexample"/></t>
        <figure anchor="simpleexample">
          <name>Example of simple mode</name>
          <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|frame header |tile data|tile data|...|tile data|metadata |filler_data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             |             \            /           |                |
|             |              \          /            |\               |
|             |\              \        /             | \              |
|             | \              \      /              |  \             |
+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+
|RTP packet #1|  |RTP packet #2| ... |RTP packet #k-1|  |RTP packet #k|
+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+

]]></artwork>
        </figure>
      </section>
      <section anchor="lowdelaymode">
        <name>Low delay mode</name>
        <t>In this mode the begining of tile data of an APV Frame Data MUST be aligned with the begining of RTP packet payloads. The first byte of the tile_size_minus1 field MUST be the first byte of a RTP packet payload after payload header except the first one following frame_header. Metadata and filler data can be added to the payload after the last tile data of a frame data. An example of this mode is shown in <xref target="lowdelayexample"/></t>
        <figure anchor="lowdelayexample">
          <name>Example of low delay mode</name>
          <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|frame_header |tile data|tile data|...|tile data|metadata |filler_data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                |      \             |              |                |
|               /|        \           |              |\               |
|              / |          \         |              | \              |
|             /  |             \     /               |  \             |
+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+
|RTP packet #1|  |RTP packet #2| ... |RTP packet #k-1|  |RTP packet #k|
+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <t>In this mode, frame header can be repeated in any packet containig the last part of a frame or a tile. When frame header is repeated it MUST be placed immediately after the end of tile data or filler data, if exist.</t>
      </section>
      <section anchor="RTPheaderusage">
        <name>RTP Header Usage</name>
        <t>The format of the RTP header is specified in <xref target="RFC3550"/> as reprinted below for convenience. This payload format uses the fields of the header in a manner consistent with that specification.</t>
        <figure anchor="rtp-header">
          <name>RTP Header According to [RFC3550]</name>
          <artwork><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|X|  CC   |M|     PT      |       sequence number         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           timestamp                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           synchronization source (SSRC) identifier            |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |            contributing source (CSRC) identifiers             |
   |                             ....                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <t>The RTP header information to be set according to this RTP payload format as follows and the usage of the fields not specified in this section follows the rules defined in <xref target="RFC3550"/> :</t>
        <t>Marker bit (M): 1 bit</t>
        <ul empty="true">
          <li>
            <t>set to 1 for the last packet of a frame.</t>
          </li>
        </ul>
        <t>Timestamp: 32 bits</t>
        <ul empty="true">
          <li>
            <t>The RTP timestamp is set to the sampling timestamp of a frame. A 90 kHz clock rate MUST be used. The RTP packets containing the data belong to a single frame MUST have same value for this field.</t>
          </li>
        </ul>
      </section>
      <section anchor="payloadheaderusage">
        <name>Payload Header Usage</name>
        <t>Each packet carries APV encoded bitstream MUST have a payload header as shown in <xref target="payload-header"/>.</t>
        <figure anchor="payload-header">
          <name>Payload Header</name>
          <artwork><![CDATA[
    0                   1                   2       
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=0|OM |PT |H|S|     FRAGMENT COUNTER (FC)     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
]]></artwork>
        </figure>
        <t><strong>Version (V)</strong> : 2 bits</t>
        <ul empty="true">
          <li>
            <t>This field indicates the version of the payload header. The version of the header shown in <xref target="payload-header"/> MUST have '0' as the value of this field.</t>
          </li>
        </ul>
        <t><strong>Operation Mode (OM)</strong> : 2 bits</t>
        <ul empty="true">
          <li>
            <t>This field indicates which operation mode is used for packetization of the bitstream.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>00b : reserved</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>01b : simple mode as defined in <xref target="simplemode"/></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>10b : low-delay mode as defined in <xref target="lowdelaymode"/></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>11b : reserved</t>
              </li>
            </ul>
          </li>
        </ul>
        <t><strong>Payload Type (PT)</strong> : 2 bits</t>
        <ul empty="true">
          <li>
            <t>This field indicates the type of payload. Depending on the packetization mode the semantics of this field is slightly different. When a single packet carries entire frame in simple mode or tile in low delay mode then this field MUST be set to 01b.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><em>For simple mode (OM == '01b')</em></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>00b: neither the first payload nor the last payload</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>01b: the last payload of a frame</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>10b: the first payload of a frame</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>11b: reserved</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><em>For low delay mode (OM == '10b')</em></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>00b: neither the first payload nor the last payload</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>01b: the last payload of a tile</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>10b: the first payload of a tile</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>11b: reserved</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t><strong>Frame Header repeated (H)</strong> : 1 bit</t>
        <ul empty="true">
          <li>
            <t>This field indicates that the frame header data is repeated in this payload. When the value of this field is equal to '1', the payload carries frame header data. The value of this field MUST NOT to be set to '1' when a payload carries a frame header at the begnining of a frame data. The value of this field MUST be set to 1 when the value of OM field is equal to 10b and the value of PT field is either 00b or 01b and the payload carries a copy of the frame header already sent. When the value of the OM field is equal to 10b and the value of this field is equal to '1', the payload includes a copy of frame header data after the end of tile data. If the payload carries the data from the last tile of a frame and there are metadata or filler data to be carried then the copy of a frame header data is carried after any existing metadata and filler data. When the value of the OM field is equal to 01b then the value of this field is ignored.</t>
          </li>
        </ul>
        <t><strong>Static Frame Header (S)</strong> : 1 bit</t>
        <ul empty="true">
          <li>
            <t>This field indicates the values of frame header data is identical except the value of capture_time_distance field with the immediately preceding frame data sent.</t>
          </li>
        </ul>
        <t><strong>Fragment Counter (FC)</strong> : 16 bit</t>
        <ul empty="true">
          <li>
            <t>This field indicates the number of remaining payload excluding the current one carrying the current frame or tile, depending on the operation mode. When the value of the Operation Mode field is '01b', then the value of this field indicates the number of payload carrying the bitstream from a same frame. When the value of the Operation Mode field is '10b', then the value of this field indicates the number of payload carrying the bitstream from a same tile. Metadata or filler data, when they exist, are considered as an integral part of a frame or tile. When the value of the H field is equal to '1', the frame header repeated after the end of a tile data is considered as an integral part of the data. The value of this field carrying the last part of frame or tile will be '0'.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="PayloadFormatParameters">
      <name>Payload Format Parameters</name>
      <section anchor="oparams">
        <name>Media Type Registration</name>
        <t>The receiver MUST ignore any parameter unspecified in this document.</t>
        <t>Type name: video</t>
        <t>Subtype name: apv</t>
        <t>Required parameters: N/A</t>
        <t>Optional parameters: profile-id, level-id</t>
        <t>Encoding considerations:</t>
        <ul empty="true">
          <li>
            <t>This type is only defined for transfer via RTP (RFC 3550).</t>
          </li>
        </ul>
        <t>Security considerations:</t>
        <ul empty="true">
          <li>
            <t>See <xref target="Security"/> of RFC XXXX.</t>
          </li>
        </ul>
        <t>Interoperability considerations: N/A</t>
        <t>Published specification:</t>
        <ul empty="true">
          <li>
            <t>Please refer to RFC XXXX and APV standard <xref target="I-D.lim-apv"/>.</t>
          </li>
        </ul>
        <t>Applications that use this media type:</t>
        <ul empty="true">
          <li>
            <t>Any application that relies on APV encoded video delivery over RTP</t>
          </li>
        </ul>
        <t>Fragment identifier considerations: N/A</t>
        <t>Additional information: N/A</t>
        <t>Person &amp; email address to contact for further information:</t>
        <ul empty="true">
          <li>
            <t>Youngkwon Lim (yklwhite@gmail.com)</t>
          </li>
        </ul>
        <t>Intended usage: COMMON</t>
        <t>Restrictions on usage: N/A</t>
        <t>Author: See Authors' Addresses section of RFC XXXX.</t>
        <t>Change controller:</t>
        <ul empty="true">
          <li>
            <t>IETF &lt;avtcore@ietf.org&gt;</t>
          </li>
        </ul>
        <section anchor="optionalParameters">
          <name>Definition of optional parameters</name>
          <t>profile-id:</t>
          <ul empty="true">
            <li>
              <t>When profile-id is not present, a value of 33 (i.e., the Baseline profile) MUST be inferred.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>When used to indicate properties of a bitstream, profile-id MUST be derived from the profile_idc in the frame header. When there are more than one value of profile_idc field are found from frame headers then the largest value among them MUST be used.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>APV encoded data transported over RTP using the technologies of this document SHOULD refer only to frame header that have the same or smaller value in profile_idc.</t>
            </li>
          </ul>
          <t>level-id:</t>
          <ul empty="true">
            <li>
              <t>When level-id is not present, a value of 153 (corresponding to level 5.1, the highest level) MUST be inferred.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>When used to indicate properties of a bitstream, level-id MUST be derived from the level_idc in the level_idc in the frame header. When there are more than one value of profile_idc field are found from frame headers then the largest value among them MUST be used.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>For either receiving or sending, all levels that are lower than the indicated level MUST also be supported.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sdpParam">
        <name>SDP Parameters</name>
        <t>The receiver MUST ignore any parameter unspecified in this document.</t>
        <section anchor="mapping-of-payload-type-parameters-to-sdp">
          <name>Mapping of Payload Type Parameters to SDP</name>
          <t>When Session Description Protocol (SDP) <xref target="RFC8866"/> is used to describe the sessions using this payload format the mapping is done as follows:</t>
          <ul spacing="normal">
            <li>
              <t>The media name in the "m=" line of SDP MUST be video.</t>
            </li>
            <li>
              <t>The encoding name in the "a=rtpmap" line of SDP MUST be apv (the media subtype).</t>
            </li>
            <li>
              <t>The clock rate in the "a=rtpmap" line MUST be 90000.</t>
            </li>
            <li>
              <t>The optional parameters profile-id and level-id, when present, MUST be included in the "a=fmtp" line of SDP. The fmtp line is expressed as a media type string, in the form of a semicolon-separated list of parameter=value pairs.</t>
            </li>
          </ul>
          <t>As main application area of APV is high quality video capturing and editing, it is expected that generally one way APV session is offered over RTP using SDP in a declarative stye. All parameters are used to indicate only bitstream properties. For example, in this case, the parameters profile-id and level-id declare the values used by the bitstream, not the capabilities for receiving bitstreams. An example of media representation in SDP for such case is as follows:</t>
          <artwork><![CDATA[
        m=video 49170 RTP/AVP 98
        a=rtpmap:98 apv/90000
        a=fmtp:98 profile-id=30; level_id=153;         
]]></artwork>
          <t>The above represents a stream of data using <xref target="I-D.lim-apv"/> and its payload specification at the baseline profile and level 5.1.</t>
          <t>It is not expected that <xref target="I-D.lim-apv"/> is offered over RTP using SDP in and Offer/Answer model with negotiation.</t>
        </section>
      </section>
    </section>
    <section anchor="CC">
      <name>Congestion Control</name>
      <t>Congestion control for RTP SHALL be used in accordance with RTP <xref target="RFC3550"/> and with any applicable RTP profile, e.g., AVP <xref target="RFC3551"/>. If best-effort service is being used, an additional requirement is that users of this payload format MUST monitor packet loss to ensure that the packet loss rate is within an acceptable range. Packet loss is considered acceptable if a TCP flow across the same network path and experiencing the same network conditions would achieve an average throughput, measured on a reasonable timescale, that is not less than all RTP streams combined are achieved. This condition can be satisfied by implementing congestion-control mechanisms to adapt the transmission rate, by implementing the number of layers subscribed for a layered multicast session, or by arranging for a receiver to leave the session if the loss rate is unacceptably high.</t>
      <t>The bitrate adaptation necessary for obeying the congestion control principle is easily achievable when real-time encoding is used, for example, by adequately tuning the quantization parameter. However, when pre-encoded content is being transmitted, bandwidth adaptation requires the pre-coded bitstream to be tailored for such adaptivity. Regardless of the method used for bandwidth adpatation, the resulting bitstream MUST be compliant with <xref target="I-D.lim-apv"/>.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>The scope of this section is limited to the payload format itself and to one feature of <xref target="I-D.lim-apv"/> that may pose a particularly serious security risk if implemented naively. Implementers are advised to read and understand relevant security-related documents, especially those pertaining to RTP (see the Security Considerations section in <xref target="RFC3550"/>). Implementers should also consider known security vulnerabilities of video coding and decoding implementations in general and avoid those.</t>
      <t>Within this RTP payload format no security threats other than those common to RTP payload formats are known. In other words, neither the various media-plane-based mechanisms nor the signaling part of this document seem to pose a security risk beyond those common to all RTP-based systems.</t>
      <t>Because the data compression used with this payload format is applied end-to-end, any encryption needs to be performed after compression. A potential denial-of-service threat exists for data encodings using compression techniques that have non-uniform receiver-end computational load.  The attacker can inject pathological datagrams into the bitstream that are complex to decode and that cause the receiver to be overloaded.</t>
      <t>APV data can include user-data as a part of metadata. <xref target="I-D.lim-apv"/> does not specify how to process such data. Depending on the user-data, it might be possible for a sender to generate user-data in a manner to crash the receiver. Receivers must ensure that it knows the format of user-data and trust the sender before it process user-data. In any case, processing of user-data is not required for decoding of APV data. So, receivers does not have to try to process unknown user-data.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>A new media type, as specified in <xref target="oparams"/> of this document, is to be registered with IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control. It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences. In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890. It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found. The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.lim-apv">
          <front>
            <title>Advance Professional Video</title>
            <author fullname="Youngkwon Lim" initials="Y." surname="Lim">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Minwoo Park" initials="M." surname="Park">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Madhukar Budagavi" initials="M." surname="Budagavi">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Rajan Joshi" initials="R." surname="Joshi">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Kwang Pyo Choi" initials="K. P." surname="Choi">
              <organization>Samsung Electronics</organization>
            </author>
            <date day="1" month="March" year="2024"/>
            <abstract>
              <t>   This document describes bitstream format of Advanced Professional
   Video and decoding process of it.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lim-apv-00"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+Vce3PbNrb/X58CE8/c2rOSYjuPJtqbTl07brKJY1/bzW5n
u+OBSEhCTZEqQcpRk+xnv+cFEBTlxOlNZ3bmOrNbigSBg4NzfueBAw4Gg15l
q8yM1PnlmVroVVboVE2Kcq4r/I86OHvb0+NxaZYjvD477qVFkus5vJGWelIN
MjsflNVioBfLwe5uL9UVPNrf3X842P12sPuk5yqdp1c6K3K4X5W16cGt0uj5
SL18fnnc69lFSQ9ctb+7+3R3v6fhKQx2ftm7KcrraVnUi5HSyyopStNLdDVS
rkp7CztS/6yKpK9cUUKHEwdXqzle/KvX612bFbydjnpqsDYtvDM3v/+uc5sb
lRSpSfDW0rpaZ9lKZYVzmXEOHs0XJVzYIu/1dF3NihK6UwP4n1I2dyP181C9
tnP6zSz5uajz6fVNkYf7RTkdqQs9d/BAPc9MUpVFbhNHD5ERBubzeG/3kbo0
eb5y8OrZ9c2qry4qox4AQ7FdYqvVSJ1lOi/66vIffA8IH6lvHwGn5XedVyU0
++nigG6YubbZSK2us5uZrcz3U/w9hEm153AyVGe6vI4mcWLzm6Jo7t5pCg8e
AsmmyKfJrMgHU5vRT/gxmNbRHOBenUX07z7+9vGjNv3nZlGPM5uoYqJewZLr
eDbz4c1wAYR975iejfP5oU71VC9tPCedzuprXbaf3Wlmf+rqzIdjIej2GZ0P
1d8KN4unc65/1Xl0904T2dt7+OSJuoQf6kWRZcWNep3HSwM9HlkzhUkcHkST
eLq/t//kk5MokZqrX5Ga760xZgjktKfwaqgOZ0U8g1c3Gkg9WxXNg/8kObtG
8harYgg920h1ejlhiF2aUQ/anx8f7u/tPfXXDx492kWICL/2ml9Pnjx+DO0A
7/JJq4+Xg6MhgigAKD0fDAZKj2G+Oql6vcuZdQogt56bvFKpcUlpx8bdBtdj
WzG6KpPjzFN1Y6uZOkiXOk/g11lZTBjSdKbe2tQUavvg7HCHcXDIo89tmmaA
01vqJbCqSOukghfUlpK/91s2uv+xS+QEkNWpama+LplvhUz1/n3EtI8fh2oz
ATMQ8aqA8ZNrU9nfza3Dnr2VjsFUKWcqIt2TPTM6NaWaWJOlbn0onblifTzf
Ab+B4hVzQbq7mZlc2UoluiwtvPs50oaX0GNDKNCg1SLm0pK4xE+rGfD5RgOd
ZmmyYgG92VyBLVsUuTNII9KXG0OLomZ2OlO/gfUD1ZF+SgPWNrWgiMiSReEq
HE1WfAgy3UN6FqWd63KlFnUJTQxOtVonEweo4RkQsIHe9jgmtRVeo92fAEDx
20td2qIGeVotDLEzKfIKmI9rEQ/m6sUCXAEWvAkhHHY2MbqqYe6gXH9RZ6ZM
zKJas/RMi+cAcQ8oT7KCmVXqm3YT7Ok1LDZ6CJl5hy8h+cTHagYOy3S2qKEP
0BKtJiUAnipyGBDopOnByhbwfGHfmQxkCdAFmQOzJ/Zi7xc8l2Z5QD4GJfhW
TtULpAn6NTfqx/GCebT/qq8eviIqnrzClS6ympRWeNUHsdLjDBZ8DLSqDLqs
bgz+PzwAXV4E4lwyM3ODNBwT4ZXNiIswiJ3PTekAt3yvNB4+oc6xGdhmYC3M
iqTYryusDv1Yn5lf2QR4NtcKLODCDwZIATOD2+rhaH+0j1N+OIJ/feoQuZHC
Os6kzd4uNth7vD7AvM4qC0sUKKC3SzMI5Pm1cKAppREvMIhCaqalBpeWVmUL
nIBy7gIOvt+q8Dfg35Z/xJMFNLD4CjTdQopYn0kOwJGVn6VB5xKYSL2jWHtR
QeaCRBC1WabmOimLcVYk184rGLVrem53hUMAyVqZzDBGuaYFIwFgjScKOI0d
EX8MOOLgBJj5GHhDrxJVgXegvwmoS2gf3RsxHOGlcguTWAC/lDUJQC1FtGoQ
jrlUgiA5GVi4I6tpKxyCcXAjSXkjXhFN6/dimogSRjDTJga4jUzA90CE1iwL
duvXLVcA1XqFBGS1l1bDa17dIPSWjLAsZ9iW0SoSbmgO7CeJZkEmmYZXMxBW
CU+C5h3BIuIc3ApW9h16QAC/gGSxgHxGlgio0AaQUJCZYgPHKIpOBoAUkJmT
XC11Vhth1hymOgb119dgqMYrei6UiGDx1FGHEVlEOCPj2AePrumWqYIBc4cT
heHNZGITi2sKdgSbgulMdCY4cfKD2m5EfweCPlBKmDz9vOMiNFqztghtDkGk
U5HCwjvEKAswEBiJ7AImAXH1GK5BvutkxjwyGq68moluUnNaZvMOPDhAfYh8
w0PuggYFY2gzAoRGYfh5aM3sXucrvt1eCdaRhg5S/zWdxw6D1EddBLEaqd9N
WeCazcEb7qy1dAarNDXQV9npE2/EcwG7bkocqJJpgq2vwKuuMwjDSjMVBp/8
4AiE6e0FrkRCLfAtVIx6ntPqdh+WYIHpLVnILXVY5EugkaAXfA6Zd+yvRT5s
0jRmCP/R5AasF4E2ehbXZoWeCIDXvZOfLi7v9fm/6s0pXZ8//5+fXp4/P8Lr
ixcHr1+HC9/i4sXpT6+PmqvmzcPTk5Pnb474Zbir1m6dHPx8jwHi3unZ5cvT
Nwev73Ung+oAcjlG5wpMEawQrjW5fRwmEAPev5coBRxljC+21CmYuqUF9wHY
j+4TM4V4sP5IELUqiswFxjQuF2O0Y0Vg62VzVJ+UPSyC84LERQDeFaw6eM/Q
DPLCjwIW3eQp9IkOsZ4XOLC3duB5H/gRHGloStOD+ZN+idTGMoZCAq89R9ro
moYjj9372ECsjFm1qeX2ntjg1Yg5QWJRK6kRkAPOr7OAgUgjiSb6vXVJPbVI
1eCjiNv3rrl0GJs0WAexAVBs8ySrU6MeRpjZ4NmT0Itc+Xm22yIh4RYQURPp
oDHwCrr1QJQ6Orxk+MSIJG4cITSzDgA4xzjK91PnloZC1AZ++8clsqFxZylW
WYBjhw4BRx5NR60xBFEmpfmthhVaiWs8VMc2R3Hqd3xVBBsSNBBCO815BIkD
FIjyquuTB2KGLPEXwayKyLOQEYSiwB+4tZhms8xvFiMW3T71wBJH/cJI9Haj
K9yyHw3eR1KdySZi7ZHgS68N3A3GKIBe1qHaRw4kh5h9sl0UXOJ4IvEknty/
VnNTaeqJARbsUYYSS3dgcIhnc0YQmP2A+r4K5gLD7pP4/dbbyM5FRZEeSEPe
HT4i3qvSFerBFXhitdvj4JnlEh5t73S9IO/OAIHOsKQ9Gj4YfovdrScIer1/
//vfvb8Mvsq/3oeYzR/ClKKr4XAY/Wr4/CFi0oevRg9N7v1IbW1YJkXp/Wf3
DiLOdQT93ke0C6AM7Hi+4BTFFor/cTRVNi0bub6/geuIloh9To21s4kKiS94
B4MziTnIA7fTuuQnEt6JT9EA7lC9rDwoOkolIH+xdYYOrveZEDtsaVLfex+c
i7SacXzOAS+0FG0Tr1ASUzKyksASmkmA7iXcoa0hOsiIyPQA4XGPIyG+Jnoh
XAeujQ3E2IZBDfBwibEu4IPXBea/QK9KavBcAY75LsAYggOaM3gDLxMI/uUh
5wEipabkBOMZRKLIlyOGLzTYQeMiddN/QOGGt2piWBXq1MsK5nPyNuj93FeH
Y3pyWFLyBEw3Av9EAgV8PzLYgWzEPxdaQE8TdsobeSIzrTPKGTHblE448gOr
m6/4RRwHDByYFf+Uslveuoeg1tt2z9KAc8TRt5K1CFqdgPc9bgCPFow4QmoS
2QmxQ+HNL4C1R5tgTR1j7uUdBTV9iSLZ91twIFiqF0fnLUYJrYFA3czDYwBD
VCNBxxGwd6eqU+qGU55gA2O5jGwVjIP5RrRioD830CX2E1uo3XfHx59AmMeb
cR3c2TPJ7/IEyxqdsi1x8hfxM3z0UbV8fWntm8ttuvuRnV3Q7dJnHRA1m9hc
UTSAs8CY1Wdsq/idOI/MXXAqGIkSc25LUMnxqjKfHqPqtG3S69hbGEZPKlNu
SGDTcCBfvkNwu6O3MQ29Ih8cByUPBsPp1E4mhmCpTRYxHnwni5IHnjegYOCh
o5t4D3n9UoIWatOdnsgTCMp0zqEqKOsNEsrsiZjXUIshEKxaXlRqppc+BoJV
IA+QVmEM8SUlSCg5KcxfxSEkhUyYiKYZt4xjh0x2YVjPQjhOM7ItN4mnLg0x
e4SG+S5mHhj3hW6HuoPfse52XN3Z7bgbPSr+a//6Jf5x/9ZmeOOT/cQd3W81
+6XdrtvPWoPw8367mVpr16Vnc0ftbpDsdrsOnzsspWYbWN/hc6SnW3swUOvG
/gcFq96+dz3oNLv+evQEd7Ml7t7RfN6oiWvgQTxM2jVJTaZXa6ABhptub4QN
SjMFhZ5EvsHnYLkBhPU+usjpNgGy9zk2uEq3I7O+HZfXdgHNO9yNirrAXEa0
dUW+vMfvW6MtAVG2xBJid81BpqH/NusiA31XiPML9eeC3NV/KMipgE+/bLp5
y88uqAB8hBtxT+v9fA7kAIWiG03rDj2fAbn7m/F7DeP+X4LcmsBvgLmshWmI
dDF69VtJGa+rpVkYLZl5dkzYDZOdnWmjsQvvfvqN5FKit6H6O2bsWr1bF/Vc
BYhaZBqrKnD/NrXwEN32gAviHkXIUMbo0lcWHPp3EDhiNIQYjhyXFMFPTk8j
FIcnTEiN98WBlug68lgbYpvdAp+oxhKajx/9nqUll3BskMUYvHHO3kJ8YaQS
Y624pHZSeNIUX+AvPyLuFsx1nnPWgTJneeUNBLwu9CQULqCTi1KAc9tV3b+9
Dff2N9x7ID3swdMH6qF6pB6rb9UT9fRL7vU2ie2X/sNOPrx9tv/h7MM/QHcO
D/H3CWv+2WXQcfpznISFQKGej4Ffjcp/NUo28Mr/Yf4Eoqj54hNt/hxKICDH
tFDu40lX1CVwYfvi4vxwR1nM8aLEll1Knv0f/3V4gmhQ2nFNNTGejsM1OlyX
J59irEIgHX6ywddibIBQLA8WDRT0jCDkIPEVQOC5/FMQ4F/3BDxiuIjTPRTx
YRJIx68T6G4oOdNOnCoX0m2EUKGegsECA8oWIlF/Pgnhe6AsI6UNokxFjF2j
Xu9El9eGytzU9snOCFR6jEUN33FtWAG/fcpLMJ7Qv0H5IebtRANG6sE+ZUTx
fc+TRj+Iwsq7faGEpmkQ9aoO1NNddf3id6xtSq4pkRiMBG6YDsMAPtKOag2w
fzIQiMfMcAic4UnmE5PUFYXkDn/yvj/PFHfEkMtDMiFnsj6bzYisXtuUUFYw
ylZg1ggdf59ranLGDRV63d9u72rIQ5HNsE2ARHwp3v8hiP9DaiYYvvvh9ER9
AND+8OLDBSv88fnBjyfP31yqw9Of3lw+P1fbx4AUpNB/fKigxG1meUVuLyRF
eVdXb7FKDDRm++3O1ZUaqVh8vRyEnDYr1FJeWcuZRamr9SZCxyeWMxKEb3a/
wbVvFaNEMqmQ6tOFkS2IEwx7tk9P7kT9zcyCYBbhZR8zUf0Byn4rBempD9KK
Y3/3F7W7O4ahsMSiXJqUb+3hrSiGXkuO+nQThcwf6ZU96gVQahDF2OtvtUJt
eW+vPfrVlV/Xy9UCWHF2eeeFxCJN2jrhDobqiHZGKeqWnZAWP0KA78wcN4UT
114bwjcqV8RdXp+OFN83wM8aLqBtLE3YnG0xsZDqEbjddtxlA7wZ2QOjwCus
By3Wd+oK0+5xnyAr6tkzkLK98Tc7V9jmuwEu6UjlxnI9QYjwvWjnbQNAN/2b
e/Dm+rNWzRI129uVZu2Ou+2wu0i0ZAJrs/dzgF7/5Dkg++8whbhZewZXV619
yhDxbL9gMQ3W9hYplc2KVuTk96TjwKyKAgyRuFsQBN80WDSKgvLN3jf9Fop5
sewMKMC2oT9faBR5OtwzF47rTt/tvX+/HzM20zykvNrpnk+O3Ay5xwO25g2S
0p01Yo93rkJLsE9NS5YiRDoQG0Q337w7lwSLPOJi1zCvDMtJV8o1ILC2JOYL
yLvrAoYNzoayrvDcHlEP1cvJxokGj4o3XFpJumjBhG6plwoJr3acLpLCXftq
Hio7YYL1Znn37Zl6TEVQrI8iM78l3/hFfMd1rj6jOXYKQGLEDF9gEWvSrkTY
vribYocK1o0LhCNR2JQAaVHmNVAlm/dX6DtfhV19HiYkkeMkyqI0iUlDpla2
kkg0BaVoV0sd4pkjnAc4ZDyRx5+diYTdQFaJZ5Jyrq5n+QHiQR69T+4rBzB3
HPbxuiUFYvj6UmYXWeS283Lr8rb9o7B6ZPX6n1nkW6YWK0Qgu/HkSS00BxMS
wXwhbWjN/nzaOB13slkx+wFBRbf6pMaUfwLZ5D14ndOG5BT3pDdk/KJ8X2fu
Lz6FYC0tCLatA1V6Q2HWJ2nzyHW7HWmxrZXJbM0qlAKAi07lFiE2PObY/Uxj
8woTHVsQG8pTftg84wreE9RM9lnPzdRieTufXMM3C6zzmPttfdRcCyEF2ztG
IL9FzH2qOu8mA3ztLQboOAwfZqT6m17voh5XzU29WPZ6574cKXTrRurN/YNe
71RKKFpPpKxpYNM+lzXBFYS+/mCDXxeaFR5oEvygUa3jQ0be2ae4m8o5YS5L
y5tS2+fHhwrzFDswgwsDCIHHXDb0e2EMxAq+BQRTuGcG7/4D/oY91XuJgEbA
MbbZhj54kmd4wtLNsLI9zqzSCGeZ0Q4XAukDmfW9k7nByJ5Ojusy7VZ9qN4B
1nByZ+LR4RkzTrqTECBLRuiuqwNYVN00V3IoJaOyk7yVQ+BDXuAUW6odLVA+
gGtUBcdIHuX/Nk0YCEtTKwsbJaw8O2CRYcj/4lOmuGFXSokSpVkSPrTkK4fj
93EircPlart7sHtH1iVPqURXT4EDWFZ++gYFEbSBC3Jp2vJYiObD7bTofO2+
UQdMnWkyYC0R6B3OdD7lwyhlgWhHROKZfvXLf8tx/e+tqSZ4HPiX77i46Cgc
jsLeiq4OYMkRKSs/aWl4ox00FMFhcw8VADN4clAB61sDLj14oLbt0AwZFH8A
ucvw8L+8vBOcXmC5KdEVCf1TGC/VeFSCtyCpr6w/RRIsQj+mxXfIx5zSxsGT
Nlc2TZp65wajG5D33h7iEohsTuY9TCjuRir3MOAFCZGx4k5dYwAzXU5BEqSj
UGM/b2cBSW0ivWD/ErEEC6ux2Fg0QwrBKfA3ySwvsmJqNxwFUnIAgpWdYAp4
2jJOpJZczjOT/CFG2XNNhpTptXk8cdqP8ijZSIS/8yl52HsEAtE+KwT0cCHp
o+EeiwmWjiOv6PbXkpFA3a0SQi1i+ejc+M8UGKpF5BiPjauUXzl2Nvt0mJHm
IoiNBGTFDa89j+Y56It6aRAqtsWIlOv6aTiqPjs6a3kHiBsuXdCtr2bluf4T
7IcE0a3EWDQ6LD/SQwWTtCIXfNIZEK+pxzwri6pIigwCmqOzHd40wO8CgHn1
GcOqCKd3JC1G3bigad09T2w2FwqJ+NxEOx507Bl5wXYxl5QYvnRv/uyeIiCE
iSH1fk25nti/GM5Vtt7Vz8pqAcNu7gEMtdquwqiOPaOd0Ge0/3BLh76np7vw
F97bZDEi2A3l4ORB3bCBEPVv9LepzZWBJ/OqPQ8pBYLbfBd963f0MRhxiSMv
A2sHSb69duKRGDk5OLdYlJsPnEF6Sa6lAjvQ/4w1a6Ft6YZ03ISOg8ceC34Q
xxftAyUbjutz5Lp2jL6PJQBMORhwfxx3yiWuci7xRq/Y1xJpRSeScqwdjMfV
pf3z1CQZTgbPgbtqhbtKWWs9UK87kEiY36rrF4RcK2L2KpiAjfZJmM+ttJBk
4gwAESDHViP4RYNAobFesONKebkihqzQ2q3XRPGarx22BYKRNdgHHQxFwumU
UayBflsJ/+bPeM0ePt37dhcZfP/g7Zl6+iQ08IowevoE9eg+aUD0FMUSnzXc
ePZg96/BTDwD4/bXsEHF1VkozXoMK9pQj0Isi+FPjPJCr5/iQE7jgXGPOi1P
PiQa11yq6GAG2FP6YMTLylvktkCuj/d5EYSuT7HF/YPcofnArEXGGZrcTIvK
+vINOhGK5gspPWRHlaLIw0MwENEzcWJpFXE8PsYp1o3GpG1mygfRONioVa+S
S4pIN9HGOJOtVGZJX5nhFDxQXG3/6h4W8b+cwEiuGpjJBI+tYZbbJiRDY0PH
7ICGPp0/b2ILOebCMUkTAZWN67VmJAj9wHrbKmxJ0fcvUElN7mp2GvyXT5rH
DNHNEV1ihVlUNLsSI4ChFOBz+7XsQdPWIiJeHoKm4MYDHnZ0rnH1clPhRz9g
aDmrgzJSYqGP9y9bzRJ02jiWuSlqdGaSmTVLqjAHF7LE7eTm0F8fNFfjFFOM
fFCDNYRhRBVtkyc6I6zRQUIz+WZATk4LLqJAAp5aGVN4TWdJedRUapECVb7K
y4EgOvIsAIl4sw7DR47kRfYGXvbm4EDr3Lo5n1lJtaQnye+eW8ZnXI5+p7d2
4gqL1UpHZ8nlFPCEisboPvyij2IkmJER1KeD+vhdkBIX1H/tQzfeE/nGwTX3
poKzQC0pqfOw4nz0csjYA5hKTWhWDBy5wQM4+PUYHKwYmyZt2dVLrARL6EMe
aM+0s1jBRsynVSRDD+uTDejcVXBYxKnq8zdKvInBmaaYKqMcblWH4gY5lsr0
BbMzVC/ASV3SUTJxKAY+MPLfQQm6KotVVTjqGARZTp818xbNdRINmsF6+QLn
8SuI6TEp3hgW6gNMVLUaYnZLlylJqSTjgNRZkTa7zvHYoFQ0NttTGBsFILZ0
wTeiD9pY7WviOueN6LxNSBsdtjIgAKshXSRHZ5Ji0aQFfRYBLqFHW3VrlQWq
gCqTTXjXg093yyd8Np0xDN+qoA8QxR8JyFZ0uAhPajlPcWndNQpu0B4gItcg
4xkw9WW4KU6MTpdW/BjcdSKKIF6CxxV/RgYMHPLKdz+AO+Tk+fjBAeY3Z5Rh
gYBEdHt8QQ0fwdl2hjXrNsYGzrXqjHbWKHYzRkKMljwEq+scyyPC/Jd1lvuU
nUSn4btR6x/raZgkZMDw4jzyeeFlYVOeFGj539k+3FaBlRcNEQDMBr/uIyft
OfZD1oD0zbm4q9sDrwhNB+ady8v0eYZ+a4d6GU7ngbM2WGQ6NwP0TtIYYP3G
NR4a1/7DRVU3bQErQwopwtWWI4CsIk87tIvFkEHdylVmjp79DybRnKQMBxvD
9yVZb2WPqWu8oxP0EEwPqgIAiFwCOkxarhaCqCZ1Ah8gZXKKn3P90Vh0Or9A
2LJ4+snk8J9BMRl4v4OXh7cq2DfmrwkJqPpINKaecj/2t/DtGErj5GDb/BcC
vCVBuunNmoUKCODNdYq3dFWhJ8FF0jb/FU9xokNAWaVEjmpNMYnPX1Nob8iE
nIJ8lYtD6YTPnYmv2axAbNvwQCNcIiVoywHlMCQKRyv8lxjQvxr4w4w6SIzf
Jh12sCmcUmOXeRU+SOc/lISwzq92qmTCYBTFzengMq6rfGlCLDTmVngOrJlV
TGVc7Ywp5lK7WWvuaEf4CtSldlXLEYRRUdv819R8DXfEBGQqfrZVvAKiZGwm
mGKxVZhkeIHUFkWWQ7v2pzQiqpll4Rx3OCkuLf3SDNVF0Q9T2XAksCpXMbPr
nLGwoYc+cHjw5mAdbvGjD6BMN1GM36fKwXaxut9P+tiBDfp0A8tVSdtQ5HaR
duN4Q/rI4hhEvfe/zlL1RYBXAAA=

-->

</rfc>
