<?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.30 (Ruby 3.4.1) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cbor-edn-e-ref-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="EDN external references">External References to Values in CBOR Diagnostic Notation (EDN)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-e-ref-02"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2025" month="July" day="02"/>
    <keyword>CBOR numbers</keyword>
    <keyword>References to CDDL numbers</keyword>
    <abstract>
      <?line 56?>

<t>The Concise Binary Object Representation (CBOR, RFC 8949) is a data
format whose design goals include the possibility of extremely small
code size, fairly small message size, and extensibility without the
need for version negotiation.</t>
      <t>CBOR diagnostic notation (EDN) is widely used to represent CBOR data
items in a way that is accessible to humans, for instance for examples
in a specification.
At the time of writing, EDN did not provide mechanisms for composition
of such examples from multiple components or sources.
This document uses EDN application extensions to provide two such
mechanisms, both of which insert an imported data item into the data
item being described in EDN:</t>
      <t>The <tt>e''</tt> application extension provides a way to import data items,
particularly constant values, from a CDDL model (which itself has ways
to provide composition).</t>
      <t>The <tt>ref''</tt> application extension provides a way to import data items
that are described in EDN.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cbor-wg.github.io/edn-e-ref/draft-ietf-cbor-edn-e-ref.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-cbor-edn-e-ref/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        cbor Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cbor-wg/edn-e-ref"/>.</t>
    </note>
  </front>
  <middle>
    <?line 79?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
<xref target="RFC8949"/> <xref target="I-D.ietf-cbor-edn-literals"/></t>
      <t>See <xref target="I-D.bormann-cbor-draft-numbers"/> for a more general discussion of working with assigned
numbers during development of a specification.</t>
    </section>
    <section anchor="the-e-application-extension-importing-from-cddl">
      <name>The <tt>e''</tt> application extension: importing from CDDL</name>
      <section numbered="false" anchor="problem">
        <name>Problem</name>
        <t>In diagnostic notation examples used during development of earlier
drafts, authors often used text strings in place of constants they
need, even though they actually mean a placeholder for a later,
to-be-registered integer.</t>
        <t>One example from a recent draft would be:</t>
        <figure anchor="fig-incorrect">
          <name>Misleading usage of text strings as stand-in for registered constants</name>
          <artwork><![CDATA[
{
    "group_mode" : true,
    "gp_enc_alg" : 10,
          "hkdf" : 5
}
]]></artwork>
        </figure>
        <t>Not only is the reader misled by seeing text strings in places that
are actually intended to be small integers, there are also small
integers that are not explained at all (here: 10, 5).
The usefulness of this example is greatly reduced.
Examples constructed in this are not actually machine-readable -- they
seem to be, but they mean the wrong thing in several places without
any warning that this is so.</t>
      </section>
      <section numbered="false" anchor="solution">
        <name>Solution</name>
        <t>In many cases, the constants needed to clean up this example are
already available in a CDDL model, or could be easily made available
in this way.</t>
        <t>If such a CDDL model can be identified, the EDN application extension
<tt>e'constant-name'</tt> can be used to reference a constant defined by that
model under the name <tt>constant-name</tt>.
(Hint: memorize the <tt>e</tt> as external constant, or enum.)</t>
        <t>For the example in <xref target="fig-incorrect"/>, such a CDDL model could have at
least the content shown in <xref target="fig-cddl"/>:</t>
        <figure anchor="fig-cddl">
          <name>CDDL model defining constants for e''</name>
          <sourcecode type="cddl"><![CDATA[
group_mode = 33
gp_enc_alg = 34
hkdf = 31
HMAC-256-256 = 5
AES-CCM-16-64-128 = 10
]]></sourcecode>
        </figure>
        <t>Note that such a model can have other, unrelated CDDL rules that
define more complex data items; only the ones used in an <tt>e''</tt>
construct need to be constant values.</t>
        <t>Using the CDDL model in <xref target="fig-cddl"/>, the example in <xref target="fig-incorrect"/> can
be notated as (example derived from <xref section="6.2-9" sectionFormat="of" target="I-D.ietf-ace-oscore-gm-admin"/>):</t>
        <figure anchor="fig-using-e">
          <name>Example updated to use e'constantname' for registered constants</name>
          <artwork><![CDATA[
{
    e'group_mode' : true,
    e'gp_enc_alg' : e'AES-CCM-16-64-128',
          e'hkdf' : e'HMAC-256-256'
}
]]></artwork>
        </figure>
        <!--
CBOR_DIAG_CDDL=sourcecode/cddl/cddl-model-defining-constan.cddl diag2diag.rb -ae
 -->

<t>This example is equivalent to notating <tt>{33: true, 34: 10, 31: 5}</tt>,
which expresses the concise 10-byte data item that will actually be
interchanged for this example.</t>
        <t>Note that the application-oriented literal does not itself define
where the CDDL definitions it uses come from.  This information needs
to come from the context of the example.</t>
        <t>Note also that the CDDL names for one EDN instance all come from a
single name space.
<xref target="I-D.bormann-cbor-edn-mapkey"/> proposes access to CDDL names where the name space in use is
specific to the data item the reference has as immediate context; this
provides a more complex, but also more powerful approach that can
handle different constant values for the same name in different contexts.</t>
      </section>
      <section numbered="false" removeInRFC="true" anchor="implementation">
        <name>Implementation</name>
        <t>The <tt>e''</tt> application extension is now implemented in the <tt>cbor-diag</tt>
tools <xref target="cbor-diag"/>, by the <tt>cbor-diag-e</tt> gem <xref target="cbor-diag-e"/>, which can
be installed as:</t>
        <artwork><![CDATA[
 gem install cbor-diag-e cddlc
]]></artwork>
        <t>(<tt>cbor-diag-e</tt> uses <tt>cddlc</tt> <xref target="cddlc"/> internally, so it must be in PATH.)</t>
        <t>Use of this extension has two prerequisites:</t>
        <ol spacing="normal" type="1"><li>
            <t>Opt-in to the application extension <tt>e</tt>, which in the <tt>cbor-diag</tt>
tools such as <tt>diag2</tt><em>x</em><tt>.rb</tt> is done using the <tt>-a</tt> command line
flag, here: <tt>-ae</tt>.</t>
          </li>
          <li>
            <t>Identification of the CDDL model to be used, which will give the
actual values for the constants.  </t>
            <t>
This can be a complete CDDL model for the application, no need to
limit it just to constant definitions.
(Where the constant values need to be obtained by registration at
the time of completion of the document using the examples, the CDDL
model can be set up with TBD values of the constants to be
assigned, and once they are, the necessary updates are all in one
place.)</t>
          </li>
        </ol>
        <t>Assuming that the example in <xref target="fig-using-e"/> is in a file called
<tt>gmadmin.diag</tt>, and that the CDDL model that includes the constants
defined in <xref target="fig-cddl"/> is in <tt>gmadmin.cddl</tt>, the following commands can
be used to translate the <tt>e'</tt>` constants into their actual values:</t>
        <sourcecode type="shell"><![CDATA[
$ export CBOR_DIAG_CDDL=gmadmin.cddl
$ diag2diag.rb -ae gmadmin.diag
{33: true, 34: 10, 31: 5}
]]></sourcecode>
      </section>
      <section numbered="false" removeInRFC="true" anchor="provisional-use">
        <name>Provisional use</name>
        <t>The need for this application is there now, while ratification of the
present specification might take a year or so.
Until then, each document using this scheme can simply use boilerplate
such as:</t>
        <blockquote>
          <t>In the CBOR diagnostic notation used in this document, constructs of
the form <tt>e’somename'</tt> are replaced by the value assigned to
<tt>somename</tt> in CDDL in figure 0815.
E.g., <tt>{e'group_mode': "bar"}</tt> stands for <tt>{33: "bar"}</tt>.</t>
        </blockquote>
        <t>(Choose 0815, group_mode and 33 along the lines of the figure you
include with the CDDL definitions needed.)</t>
      </section>
    </section>
    <section anchor="the-ref-application-extension-importing-from-edn">
      <name>The <tt>ref''</tt> application extension: importing from EDN</name>
      <section numbered="false" anchor="problem-1">
        <name>Problem</name>
        <t>Examples using CBOR diagnostic notation can get large.
One way to manage the size of an example is to make it incomplete.
This reduces the usefulness of the example for machine-processing.
It can also be misleading, unless the elision is made explicit (see
<xref section="3.2" sectionFormat="of" target="I-D.ietf-cbor-edn-literals"/>).</t>
      </section>
      <section numbered="false" anchor="solution-1">
        <name>Solution</name>
        <t>In a set of CBOR examples, recurring subtrees can often be identified,
the details of which do not need to be repeated in each example.</t>
        <t>By enabling examples to reference these subtrees from a separate piece
of EDN, each example can focus on what is specific for them.</t>
        <t>The <tt>ref''</tt> application-oriented literal enables composition by
standing for a CBOR data item from a separate EDN instance that is
referenced using its text as an identifier.</t>
        <t>So, for example, if <tt>123.diag</tt> is a file containing</t>
        <artwork><![CDATA[
[1, 2, 3]
]]></artwork>
        <t>the result of the EDN</t>
        <artwork><![CDATA[
[4711.0, true, ref’123.diag’]
]]></artwork>
        <t>is</t>
        <artwork><![CDATA[
[4711.0, true, [1, 2, 3]]
]]></artwork>
        <t>The text of the literal can be one of two kinds of identifiers:</t>
        <ol spacing="normal" type="1"><li>
            <t>a file name to be interpreted in the context of the referencing
example, as shown above, or</t>
          </li>
          <li>
            <t>a URI that references the EDN to be embedded, as in  </t>
            <artwork><![CDATA[
  [4711.0, true, ref'http://tzi.de/~cabo/123.diag']
]]></artwork>
            <t><!-- URI-references that are not absolute would, again, be interpreted -->
            </t>
            <t><!-- in the context of the referencing example. -->
            </t>
          </li>
        </ol>
        <aside>
          <t>(ISSUE: We could use upper-case REF to unambiguously identify one of
he two; the current implementation however just tries to parse the
literal text as a URI and, if that fails, interprets it as a file
name.)</t>
        </aside>
        <t>Note that a <tt>ref''</tt> application-oriented literal can only be used for
a single CBOR data item; the extension point provided by EDN does not
work for splicing in CBOR sequences.</t>
      </section>
      <section numbered="false" removeInRFC="true" anchor="implementation-1">
        <name>Implementation</name>
        <t>The <tt>ref''</tt> application extension is now implemented in the <tt>cbor-diag</tt>
tools <xref target="cbor-diag"/>, by the <tt>cbor-diag-ref</tt> gem <xref target="cbor-diag-ref"/>, which can be installed as:</t>
        <artwork><![CDATA[
 gem install cbor-diag-ref
]]></artwork>
        <t>For using the application extension, the <tt>cbor-diag</tt> tools such as
<tt>diag2</tt><em>x</em><tt>.rb</tt> need to be informed by the <tt>-a</tt> command line flag,
here: <tt>-aref</tt>.</t>
        <t>For experimenting with the implementation, the web resource
<tt>http://tzi.de/~cabo/123.diag</tt> contains <tt>[1, 2, 3]</tt>.
This example enables usage as in:</t>
        <sourcecode type="shell"><![CDATA[
$ echo "[4711.0, true, ref'http://tzi.de/~cabo/123.diag']" >my.diag
$ diag2diag.rb -aref my.diag
[4711.0, true, [1, 2, 3]]

$ echo "[4, 5, 6]" >456.diag
$ echo "[4711.0, true, ref'456.diag']" >my.diag
$ diag2diag.rb -aref my.diag
[4711.0, true, [4, 5, 6]]
]]></sourcecode>
        <t>If a referenced EDN file parses as a CBOR sequence this is currently
treated as an error.</t>
      </section>
      <section numbered="false" removeInRFC="true" anchor="provisional-use-1">
        <name>Provisional use</name>
        <t>Documents that want to use the application extension <tt>ref''</tt> now can
use boilerplate similar to that given above for <tt>e''</tt>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to make the following two assignments in the CBOR
Diagnostic Notation Application-extension Identifiers
registry [IANA.cbor-diagnostic-notation]:</t>
      <table anchor="tab-iana">
        <name>Additions to Application-extension Identifier Registry</name>
        <thead>
          <tr>
            <th align="left">Application-extension Identifier</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">e</td>
            <td align="left">import value from external CDDL</td>
          </tr>
          <tr>
            <td align="left">ref</td>
            <td align="left">import value from external EDN</td>
          </tr>
        </tbody>
      </table>
      <t>All entries the Change Controller "IETF" and the Reference "RFC-XXXX".</t>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFC-XXXX with the RFC
number of this RFC, [IANA.cbor-diagnostic-notation] with a
reference to the new registry group, and remove this note.</cref></t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/>, <xref target="RFC8949"/>, and <xref target="I-D.bormann-t2trg-deref-id"/> apply.</t>
      <t>The proof of concept implementations described do not do any
sanitizing of URLs or file names at all.
Upcoming versions of the present document will need to define the
right restrictions for external references like this.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="12" month="May" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -17 is
   // intended to fully address the WGLC comments.  It is intended for
   // use as a reference document for the CBOR WG interim meeting on
   // 2025-05-14.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-17"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.bormann-cbor-draft-numbers">
          <front>
            <title>Managing CBOR codepoints in Internet-Drafts</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="1" month="March" year="2025"/>
            <abstract>
              <t>   CBOR-based protocols often make use of numbers allocated in a
   registry.  During development of the protocols, those numbers may not
   yet be available.  This impedes the generation of data models and
   examples that actually can be used by tools.

   This short draft proposes a common way to handle these situations,
   without any changes to existing tools.  Also, in conjunction with the
   application-oriented EDN literal e'', a further reduction in
   editorial processing of CBOR examples around the time of approval can
   be achieved.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-draft-numbers-05"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-edn-mapkey">
          <front>
            <title>CBOR: Generating Numeric Map Labels from Textual EDN</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="29" month="June" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, STD 94 == RFC 8949)
   is a data format whose design goals include the possibility of
   extremely small code size, fairly small message size, and
   extensibility without the need for version negotiation.

   CBOR diagnostic notation (EDN) is widely used to represent CBOR data
   items in a way that is accessible to humans, for instance for
   examples in a specification.  Complex examples often use nested maps,
   the map keys (labels) for each of which are often sourced from
   different specifications.  While the e'' application extension
   provides a way to import data items, particularly constant values,
   from a CDDL model, it does not help with automatically selecting the
   right kind of map depending on its position in the nested maps.


   // The present document is intended to capture ideas initially
   // discussed at the CBOR WG interim 2025-06-25 and demonstrate some
   // design alternatives.  It is not ready for adoption yet in any way.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-edn-mapkey-00"/>
        </reference>
        <reference anchor="cddlc" target="https://github.com/cabo/cddlc">
          <front>
            <title>CDDL conversion utilities</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="cbor-diag" target="https://github.com/cabo/cbor-diag">
          <front>
            <title>CBOR diagnostic utilities</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="cbor-diag-e" target="https://github.com/cabo/cbor-diag-e">
          <front>
            <title>CBOR diagnostic extension e''</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-gm-admin">
          <front>
            <title>Admin Interface for the OSCORE Group Manager</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   Group communication for CoAP can be secured using Group Object
   Security for Constrained RESTful Environments (Group OSCORE).  A
   Group Manager is responsible for handling the joining of new group
   members, as well as managing and distributing the group keying
   material.  This document defines a RESTful admin interface at the
   Group Manager that allows an Administrator entity to create and
   delete OSCORE groups, as well as to retrieve and update their
   configuration.  The ACE framework for Authentication and
   Authorization is used to enforce authentication and authorization of
   the Administrator at the Group Manager.  Protocol-specific transport
   profiles of ACE are used to achieve communication security, proof-of-
   possession, and server authentication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-gm-admin-13"/>
        </reference>
        <reference anchor="cbor-diag-ref" target="https://github.com/cabo/cbor-diag-ref">
          <front>
            <title>CBOR diagnostic extension ref''</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.bormann-t2trg-deref-id">
          <front>
            <title>The "dereferenceable identifier" pattern</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   In a protocol or an application environment, it is often important to
   be able to create unambiguous identifiers for some meaning (concept
   or some entity).

   Due to the simplicity of creating URIs, these have become popular for
   this purpose.  Beyond the purpose of identifiers to be uniquely
   associated with a meaning, some of these URIs are in principle
   _dereferenceable_, so something can be placed that can be retrieved
   when encountering such a URI.


   // The present revision -04 includes a few clarifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-t2trg-deref-id-05"/>
        </reference>
      </references>
    </references>
    <?line 361?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61a63IbOXb+j6dANKmSvGG3dbPX5sRTK0vyjqp2LuVLNpWJ
Y4LdIIl1X7hAt2iOh1P7GvmfN8mb5EnynQOgu0nK1noSlWWR3Wjg4Fy+852D
TpJE3I7lmRCNaQo9lt8IKa8/NNpWqpAv9UxbXWXayaaW/6KKFp9MJS+f//BS
Xhk1r2rXmEx+XzeqMXUlj66vvn8g1HRqNWbFF6njXLabS+R1VqkSi+VWzZrE
6GaWZNPaJjqvEp1gZFKoRrtG5PgzlqfHp4+S498nx6fivV6vapuPIWXixaja
cqqt4wvb8l5eXf2pu52pZgzRZ7VwjdWqHMub69cvhFiasfypqbORdLXFnZnD
p3XpP2R1uVRZwx9KXTXurRC3umo1rV8qU4wlyf0H2kFa2zmuzk2zaKf+erKa
P+y2hHt+U2O5aJqlGz98GMak/pnU1P3oh59UTbpoykII1TaL2rIe8CuxNTeW
l6l8XttSVRVf80q+VNY1utq6A1nH8k1lbqEa0/z3fzXyudXYoXz9bzc8gJSk
IeqPMPBMZQt5dnZ8fn7M9zLTrMfhAX+hzrHOVXL65OzR03ClrRqLUX/UtOia
Ly4XdYVx/3T+NDk/PUlOT54kj8+enp7wTR3Uqab1H5qfDWtTVCRyAylpny9f
XD55ev7UqzZ8f3xyjO95XuD7TXKVbuurMPA9VUAx+CbI+IPpaPjUq8Q/4TUe
/GU88Ku9kTR3qZbwxbH0fzGKpMjGvJcQSux/WV2xkhEcbWMgkdHOD1J2rgfO
EJwAnvaQlPCQ56N5WTbE2vbc5Pp5H4FfOHecczh/oj+7AgVyxfvQh4dftkqi
h+ZRmU5ql9VWJ/MyUXlpqrGMn7YEgrf/nSJh5BcL5WNyaNzmtLHzJNcEQCYH
PNEnIZIkkWqKiAAUCPF6oeVlXWXGafncVMqu5Q/Tv+isAfosrXaAiYCFJO6I
3FSS3z6QxkklgWhKeEeUq0WNSXLtzLyS8xqeijDOijbXssEqy9o5MyW7rmU9
o91SyBVr6UpVFIKiTjrzsx7JmTI2Xpeldk7N4y1V5VFPYaoVNFK3DS0hKq1z
CWlk9NFKz+vG8AZSIXYVXm3hPG1oZXKSqHWYB5BrowqCrWizCMKSs4aSK7XG
stg5qSIDTEOoQtODixYWAOKSLICyRgHE+Yv+oMplAb/mCdxSZ2ZmsiDgBe8C
7lFq0tDKIgSq+YgTT25yklcubX0LIaGWbKEq4yALzUvQXgP7MI/Ao64FxsW1
5MzWpSzbojH46odWBP/ATaSJ1kLyFI6AXSCVtZQZSAOO11XLZREE7B2U81GU
pFnVvJ7oRRrJad0seA8LA0mgAm0bGE8arG0baJd0KUmXuInJaN+deuVUY9/k
SZk1UwyGsiDL2HvrBAE7uVuuKJOLxqnDgv1ybiSWysL6baHIyQBoZJ5G3jId
GHllKY92JXyykEdhE43TxUwulKO5nRioYKD9B2mQkmP4/yCnYM9SVu/pIfUx
XBpAqhbiBqmpztuMlwg/H78ydHUjng1+hDj6sdAKMeq07iAgfSA+fuREsNlI
fEI22GyEeIUh+BbSBm6RlyloBALNdUWJCD7pstbxhsjUtX1PZqOAlMoRCuhc
hAlk3lpv01td1Ev2MTyzFwLiK3mPjcdBVTQb24oshee+kj/aGuFXio/jtvLL
6nxD+rkz5rvo4GC/WzwNFzHaCs6l8A3PUhA3M2IgHiUgGNELPM2osCyQEOjZ
6FiOfHvN0DSSmL6ShFfzBV8GbDQtUG6NeFaECPz4oi6A1UHjxLLsCN6WTIkw
zQ3Yj2VfaPRcW6jsh0rH3UTvtTqjLbDcMExb5IgpxI93DhHdRB7Mbd0u35Gf
H8ixbGyrR8O7y3egn+9UMae7J8eDe2HE4n0+o3uP/J0NlC+/mpl5AuSvraU8
Agh9dpDrHAIdeFr+7OA74+CJOam8ZXSHwrY0iSAj7eWYh/Uw2Hin2AMYF1Rd
1hX0Z1jPGKdIdSXNjz2vydVplTvN5Bi9BcVYZwdSa5V7+J/qkIOCruEBWING
02/h6pC64m3ZhSwhtf6ARQxiQNJFzHJEz7Ia5aMHKaMEXGjWFhUyB2uAIDha
Eh/n2E0DmbDrNtN5Kq6jz7IOLGLegwI/GNftXQpEF+snpBNFiQmgwb4InZR+
fwBqnzqDA5IKV7YmhS1IbZjbwWcp2IPGQroVYMGALluxcmnbLAP+uTrlaHxV
Fy2no/1wJAoNauy0V+ggVChKvO6zguRpl9tKwR6FKmhDCJ1bUGzeF+fSHrBH
khOid3rEsDOsDOB094iISgP6QtybkDG3YD/D+njekOMCoSh8SdhPJkUB0Io7
SahWAYKFOXo+EQo6rNQlnlzP2EumnkwIv3pbkR/TgjSVnGzNPEnF0bfwOvB1
DUQGM+KREz2hwOlq1PgMKwR1XgmsFy9qP23nZxVwfitiN5vRXepghS7ULYRv
BOWRJhqvIaxxi3pV9bMR399sADm//vqrL2l6qJHPUH+JHlzo+7kgKKFPJ+Lb
7y4uk9NHj+kXVx6Ji+tXyeXld8nJ4+TxeXJy+gRXT45p6g5vaAkZ0GUgNSuX
fLT3MaZhh4cBPbT33rDf3vK80ZrCfQRbWE0wnHt92LaI0OFt57MikYBCfxik
8K89NJGWQLhCpiFnrXyCE10Ys+MHyNlhJHDPN85HmR7aY0fTo3uNStsSU+0z
IKGSk0dxPHwNdWTu08fHj6+0ZxOP09PkKSFTV9psNg/uSCP6sDfu4X4ewe3O
1nRbH+4Z9HAvtehDcgg/fOgQh7uZpiXtJPrOPBMAEziS856hYRhB9oHKcfrZ
DPPP/5AkXDm8u7q5+OM7ssAzT5qpYuG6lv9L2CxJdLgkTJKyYxIBOaX/UjuV
iUIBmSTfCM+5B4Cv/9oaWJ3CCZJ6qgLLTz6enQWlIlB8Bjk7QdLdTEbCk1Mk
G1QqTrsYk1zQnRwn03WjB2SbnX1lkI26NDHVnMAskfd5qJ+GoJsO44RmH6Bf
AvCBtHgqNCdQQUAGSkOBLvsIgZSUNzsX9lpquJQwodpA/Hj+kkrJiuk6HFzI
6ZwpdzeqB58PjU+eeldiTtGd2L5/Bnt7CEBEMpZ35Rml6H52JcitigC/bonk
lxJR9g0SRBMoPDi/jpVf36HjFfr99s9TVJL3GSci65WD0icaSA/SBBUb+GfK
UsN7mm7DX7OFxKCMGEKQz+q8e768rFfagmeQ5WxN7S9WCuEBbJ5T/JsZL9ns
ok/wBuyAtsF7MdX2cJLH+Zx/Q8uXsWWwlfmxqbK+BRezs2xzfyFnyIlWRPX9
hJHnUCaMLY8J/KEuHPCqu0Q4OF3vjEuQFue6HI5LNI30oRNgkf2gKBgYI8TN
uTzl68PGkm+OoZzaXoO9eML3JrQYfYCjcHBVFGrUlCV3L1vkTl5S/njx+lvK
ym+cHjDAqAUyP5XXiG1L2IASU5NwJ6n8YdkQNw7+c7cSwQdGXQW+pzzqLrH+
fO6D6IxSk999+N0EMDWR3A+oiL3E9DNJ1ISbx9SGKSiuMcmsUPOR9NwWA4ic
nKbyJtCmIFQI0EH+8smOUmKUkWFpjjzEvRzM7CFq1xM7dE7ZSgwVgWepEAHN
1krxwYGSRvCumHNpksKUhiBL/oVMwzAzZGceqVIaefTnLrJ3Q2WQw+tpoyKp
84nFej2AM5DeB12eIPFASYMmTFR8LFZHnRZpmi2e6nRDdJmr79fPr6JQYc5B
NUoCsnZDie6bajXBjS9JrfbLVJqAjTqCPn26UPcw96i98bkqIAe+cK4tB8XA
HVwkJGoKidBAmxnqR3HUicm8ZIaRsnd6obaxO/gNN9x8X9Ft701EKr3DjcJ6
3Qp0deL3OKuLol55gshu7SIeRM4Oy1WO2F+g2IeTyUCbsXll7La3IkiZ+bqF
RoH4j5Sfqb2zwyOGAmHQLkuQQ5WIT5IA5sGhAXJrKPIhBsS/D3+7bqkvHwcQ
4otpridXHJ0wEznwTjiL2B3dauKg+J4vYDb1ngJyrZX1fcZUvAEikAE14k9T
GtrzdKofswUQn73aEfxzN1ZOa8hgl2QHEfAKKv44/muLRL8R31BZyY7yqRZv
5N7NsM056gtpihThPcKWMPP//O0/HchAqOPI8a1mZ89jgmFDd1FEQDKJT0z4
VJF8ltoXZt7i8eMnJ49QwafzdARCt8WYx/JgquzBZuJ7Hh7qPOkLNwB1R5eL
mvrrNM9IDoopCpSzM8RlHcCCgLkL/LD6um5FbMYzRNxJxXz5TeEc2nCfa2Lu
NeLApj7Xh7vuG270yCctRZafA8wKOvpIubsVeqSIT+oVMR2hmpcaiNWQP/MY
uJ1hhAipILS2fRPFI8Zu22XQP4PmY98EXIl7+tU8FTdMlzynAjiUXf+KqsOC
+R/NUpjIXrjfQC0gk0GaI6cRjl1ddZaeclXFvdYH9/ZLFIM7HmCd9bkAdV1r
uW/p2imdcPpE6LuT260Ldu1cIysVru/L51xkDBMXnFyrwLY4RHtK/Xwt4dzT
gtbrmqdbTQ2sQc3lKEvoRTq9VJbwc2mQUOh0Ao4y2pqdxZ4hKCFbBdn8kUpH
kkMCLz/dWt+vQ1hUX1XE1jwCV3CAscdyc7U71vHke1firfognPSIbr958GRD
WZWqECLrVa916s2+qkfDc5+RNDM5OTk981nOn6H5LAgirbhy9Nzzp5ORPAXC
vxXClwSuLbo6hyONR53//uQkRSbweQGiAbfi9PiIpyHxXUO7+d96pQ7LqKjD
wCyIA9IdENH3huAJX/pNBj4atsEVgncl5r3IEAPuvlOuRU3Spqnijzqi5i93
k9QUKYu6V8QolXzz8sZbwQ5ejAgtOb+mRtjkOXMays2ibyrsa+qQzlTHDx/S
8TwK+V/5PDXq7vAtP0vFPy2bbK04aPKqqaO41b7JjmXnMOJod/tU7MfZ7lVF
F3K+R/BxrBy0TTnu6ObVqzfXY/lnHbpxlBnb5VLbhLqp8uX1C+5wwAhTwH7d
Ompoe0utgxnFgk/svvZCAD4o/Zqtuk1C99T0DWQYkeXP+5R1nppH/+icni2D
wGL3Zv3MCGhGvRK4zFfR2wW5CaWZvrGg/r6wZnyruGvhUzqCSyBifa2+Hc5f
B2TvDt1qiBOP3jiN88FqaFgIOr/iWHUM2r77zTM61F5s+99U5X72IPD/tc7F
SvuVLi5u1bryi2pdfmOAWsZ9LXLnRka7Mm/XlmK3thykHN/m6XnVXpHpK0zR
VZi0zdRLhQSrrSHFdSePNMW2P3vZVnpKKMqdOzH5XOxPIhijJO5gcpJud+ti
fvHHV4w24x3Kny1qefDFuHMgvynXnvHvVQR4Wsabn8Hzfu2RBFd8THOeP3oc
J/2kYHHMbxciLvjW1yQ3Mz6L7PIlxRunCcYS5wFhK8S6Y6QATcVa0PttoV9N
bM/a2qZfWu5cBcIf0HulfIe19YD2qfZJiFwKUCoKd+oQKk8MSKrvwWBWal2E
nOUZPPW3IKq4ufj+gl6yIRz3fQC3dTAfj+d5HFNVKMOFfjUT2u1SlTKxrzv8
nkxf+4i7XmO8GCBqv72bPoWL0KNYy3//iYRIuzj2UyWRnL+luvaXeyeUv8gr
fmlhOXwpYevnF/FLcu/P/UMwjdR3LjBcK75d4Us2ZnndIRkXQTQN+fVvn4Zc
G9PQoUSjpolBqRKPoy7yPNRXMOe9qnsZTEFnDxcFEdmQgcnC3KInV2osvAGj
D+i1z4PQLNH9G6Py4OWLy+Rf8XMAD/zpP+LrAxQU+dv9K2N+sesagtZ2LJf+
NZFQ8co4VQ+wuOJfyeRw6zqXuDy614XCCyL8/KB2qEPPaSU7Z+Qi13eCvJx+
FcxE9Yh4ReUPvQKW3RdaIb4oHbu7H6It0Gsw4SyteyPGr46v/PLcZsNQsQ6F
CKgEHvPvemR6ucuj3ODNnVBp4Q+9PuoUVdw/Uyzj6Tcv/8SvYnUE2oU3BlLx
ZolESMPCC21dvRo7L10HhZunMauGY0niapabMRgNL8q8VL4e2XuPGbn2vddw
eMFoqrL38MHsPQAQXGHOO9tXL/l8hN1nB1VNjvv6+ZX4X7Ir0nyMLQAA

-->

</rfc>
