<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.6.10) -->


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

]>


<rfc ipr="trust200902" docName="draft-johani-dnsop-delegation-mgmt-via-ddns-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="DDNS Updates of Delegation Information">Automating DNS Delegation Management via DDNS</title>

    <author initials="J." surname="Stenstam" fullname="Johan Stenstam">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>johan.stenstam@internetstiftelsen.se</email>
      </address>
    </author>

    <date />

    <area>Internet</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Delegation information (i.e. the NS RRset, possible glue, possible DS
records) should always be kept in sync between child zone and parent
zone. However, in practice that is not always the case.</t>

<t>When the delegation information is not in sync the child zone is
usually working fine, but without the amount of redundancy that the
zone owner likely expects to have. Hence, should any further problems
ensue it could have catastropic consequences.</t>

<t>The DNS name space has lived with this problem for decades and it
never goes away. Or, rather, it will never go away until a fully
automated mechanism for how to keep the information in sync
automatically is deployed.</t>

<t>This document proposes such a mechanism.</t>

<t>TO BE REMOVED: This document is being collaborated on in Github at:
<eref target="https://github.com/johanix/draft-johani-dnsop-delegation-mgmt-via-ddns">https://github.com/johanix/draft-johani-dnsop-delegation-mgmt-via-ddns</eref>.
The most recent working version of the document, open issues, etc, should all be
available there.  The author (gratefully) accept pull requests.</t>



    </abstract>



  </front>

  <middle>


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

<t>For DNSSEC signed child zones with TLD registries as parents there is 
an emerging trend towards running so-called "CDS scanners" and "CSYNC 
scanners" by the parent.</t>

<t>These scanners detect publication of CDS records (the child signalling
a desire for an update to the DS RRset in the parent) and/or a CSYNC
record (the child signalling a desire for an update to the NS RRset
or, possibly, in-bailiwick glue in the parent.</t>

<t>The scanners have a number of drawbacks, including being inefficient
and slow. They are only applicable to DNSSEC-signed child zones and
they add significant complexity to the parent operations. But given
that, they do work.</t>

<t>Generalized DNS Notifications (see
draft-ietf-dnsop-generalized-notify-00) propose a method to
alleviate the inefficiency and slowness of scanners. But the DNSSEC
requirement and the complexity remain.</t>

<t>This document proposes an alternative mechanism to automate the
updating of delegation information in the parent zone for a child
zone based on DNS Dynamic Updates secured with SIG(0) signatures.</t>

<t>This alternative mechanism shares the property of being efficient
and provide rapid convergence (similar to generalized notifications in
conjuction with scanners). Furthermore, it has the advantages of not
requiring any scanners in the parent at all and also not being
dependent on the child (and parent) being DNSSEC-signed.</t>

<t>Knowledge of DNS NOTIFY <xref target="RFC1996"/> and DNS Dynamic Updates
<xref target="RFC2136"/> and <xref target="RFC3007"/> is assumed. DNS SIG(0) transaction
signatures are documented in <xref target="RFC2931"/>. In addition this
Internet-Draft borrows heavily from the thoughts and problem statement
from the Internet-Draft on Generalized DNS Notifications (work in progress).</t>

<section anchor="requirements-notation"><name>Requirements Notation</name>

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

</section>
</section>
<section anchor="is-there-a-use-case"><name>Is there a Use Case?</name>

<t>Because of the drawbacks of CDS and CSYNC scanners they are unlikely
to be able to fully automate the maintenance of delegation information
in all parent zones. The primary reasons are the hard requirement on
DNSSEC in the child zones and the complexity cost of operating the
scanner infrastructure. In practice, scanners are likely mostly
realistic for parent zones that are operated by well-resourced
registries.</t>

<t>All the parts of the DNS name space where the parent is smaller and
more resource constrained would be able to automate the delegation
management via this mechanism without the requirement of operating
scanners. Also all parts of the name space where there are child zones
that are not DNSSEC-signed would be able to use this.</t>

<t>Obviously, also well-resourced parent zones with DNSSEC-signed child
zones would be able to use this DNS UPDATE-based mechanism, but in those
cases scanners plus generalized notifications would also work.</t>

</section>
<section anchor="dns-notify-versus-dns-update"><name>DNS NOTIFY versus DNS UPDATE</name>

<t>DNS NOTIFY and DNS UPDATE messages share several properties
and are used to address similar issues.</t>

<section anchor="similarities-between-notify-and-update"><name>Similarities between NOTIFY and UPDATE</name>

<t>Both NOTIFY and UPDATE are "push" rather than "pull" messages and
therefore very efficient.</t>

<t>Both NOTIFY and UPDATE are messages, in DNS packet format. They are
used by one party (the sender) to inform another party (the recipient)
that some piece of DNS information has changed and that as a
consequence of this change the recipient of the message may want to
also make a change to its DNS data.</t>

<t>A NOTIFY (as per <xref target="RFC1996"/>) is only a hint and the recipient may
ignore it. But if the recipient does listen to the NOTIFY it should
make its own lookups to verify what has changed and whether that
should trigger any changes in the DNS data provided by the recipient.</t>

</section>
<section anchor="generalized-notify-vs-original-notify"><name>Generalized NOTIFY vs original NOTIFY</name>

<t>This is a proposed extension to the use of <xref target="RFC1996"/> NOTIFY. The
extension covers using NOTIFY(CSYNC) to signal the publication of a CSYNC
record in the child zone (prompting the parent zone to look it up and
make a decison on whether to update the delegation information for the
child zone based upon what is found. Another type is NOTIFY(CDS) which
does the same, except it is used to prompt the parent to decide
whether to update the child DS RRset (or not).</t>

<t>A generalized NOTIFY is typically sent across a zone cut (from child
to parent) and the recipient is likely a CSYNC or CDS scanner. In this
case it is essentially a message that says:</t>

<figure><artwork><![CDATA[
"the delegation information for this child has changed; I suggest
that you go and check it out yourself"
]]></artwork></figure>

</section>
<section anchor="differencies-between-notify-and-update"><name>Differencies between NOTIFY and UPDATE</name>

<t>The difference between the UPDATE and the NOTIFY is that the UPDATE
contains the exact change that should (in the opinion of the sender)
be applied to the recipients DNS data. Furthermore, for secure Dynamic
Updates, the message also contains proof why the update should be
trusted (in the form of a digital signature by a key that the
recipient trusts).</t>

<t>In this document the term "Dynamic Update" or "DNS UPDATE" implies
secure dynamic update. Furthermore this document implies that the
signature algorithms are always based on asymmetric crypto keys, using
the same algorithms as are being used for DNSSEC. I.e. by using the
right algorithm the resulting signatures will be as strong as
DNSSEC-signatures.</t>

<t>DNS UPDATEs can be used to update any information in a zone (subject
to the policy of the recipient). But in the special case where the
data that is updated is the delegation information for a child zone
and it is sent across a zone cut (i.e. the child sends it to the
parent), it acts as a glorified generalized NOTIFY.</t>

<t>The DNS UPDATE in this case is essentially a message that says:</t>

<figure><artwork><![CDATA[
"the delegation information for this child zone has changed; here
is the exact change; here is the proof that the change is
authentic, please verify this signature"
]]></artwork></figure>

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

<dl>
  <dt>SIG(0)</dt>
  <dd>
    <t>An assymmetric signing algorithm that allows the recipient to only
need to know the public key to verify a signature created by the
senders private key.</t>
  </dd>
</dl>

</section>
<section anchor="updating-delegation-information-via-dns-updates"><name>Updating Delegation Information via DNS UPDATEs.</name>

<t>This is not a new idea. The functionality to update delegation
information in the parent zone via DNS UPDATE has been available for
years in a least one DNS implementation (BIND9). However, while DNS
UPDATE is used extensively inside organisations it has not seen much
use across organisational boundaries. And zone cuts, almost by
definition, usually cuts across such boundaries.</t>

<t>When sending a DNS UPDATE it is necessary to know where to send
it. Inside an organisation this information is usually readily
available. But outside the organisation it is not. And even if the
sender would know where to send the update, it is not at all clear
that the destination is reachable to the sender (the parent primary is
likely to be protected by firewalls and other measures).</t>

<t>This constitutes a problem for using DNS UPDATES across zone cuts.</t>

<t>Another concern is that traditionally DNS UPDATEs are sent to a
primary nameserver, and if the update signture verifies the update is
automatically applied to the DNS zone. This is often not an acceptable
mechanism. The recipient may, for good reason, require additional
policy checks and likely an audit trail. Finally, the change should in
many cases not be applied to the running zone but rather to some sort
of provisioning system or a database.</t>

<t>This creates another problem for using DNS UPDATEs for managing
delegation information.</t>

<t>Both problems are addressed by the proposed mechanism for locating the
recipient of a generalized NOTIFY.</t>

</section>
<section anchor="locating-the-target-for-a-generalized-notify-andor-dns-update"><name>Locating the Target for a generalized NOTIFY and/or DNS UPDATE.</name>

<t>The generalized notifications I-D proposes a new RR type, tentatively
with the mnemonic NOTIFY that has the following format:</t>

<figure><artwork><![CDATA[
{parent zone}   IN  NOTIFY  {RRtype} {scheme} {port} {target}
]]></artwork></figure>

<t>where {parent zone} is the domain name of the parent zone and
{target} is the domain name of the recipient of the NOTIFY. {RRtype}
is typically "CDS" or "CSYNC" in the case where delegation
information should be updated (there are also other uses of
generalized notifications). Finally, {scheme} is a number to indicate
the type of notification mechanism to use. Scheme=1 is defined as
"send a generalized NOTIFY".</t>

<t>Example for where children of <spanx style="verb">parent.</spanx> should send NOTIFY(CSYNC):</t>

<figure><artwork><![CDATA[
parent. IN NOTIFY CSYNC 1 5301 csync-scanner.parent.
]]></artwork></figure>

<t>This record is looked up by the child primary nameserver at the time
that the child primary is about to publish a new CSYNC record in the
child zone (or the equivalent for a CDS). The interpretation is:</t>

<t><spanx style="verb">Send a NOTIFY(CSYNC) to csync-scanner.parent. on port 5301</spanx></t>

<section anchor="locating-the-target-for-a-dns-update"><name>Locating the Target for a DNS UPDATE.</name>

<t>This document proposes the definition of a new {scheme} for the same
record that is used for generalized NOTIFY. Scheme=2 is here defined
as "send a DNS UPDATE".</t>

<t>Example:</t>

<figure><artwork><![CDATA[
parent.  IN NOTIFY ANY 2 5302 ddns-receiver.parent.
]]></artwork></figure>

<t>This record is looked up by the child primary nameserver at the time
that the delegation information for the child zone changes (typically
causing the child to publish a new CSYNC record and/or a new CDS
record). The interpretation is:</t>

<t><spanx style="verb">Send a DNS UPDATE to ddns-receiver.parent. on port 5302</spanx></t>

</section>
</section>
<section anchor="limitation-of-scope-for-the-proposed-mechanism"><name>Limitation of Scope for the Proposed Mechanism</name>

<t>DNS UPDATE is in wide use all over the world, for all sorts of 
purposes. It is not in wide use (if used at all) across organizational 
boundaries. This document only address the specific case of a child 
zone that makes a change in its DNS information that will require an 
update of the corresponding information in the parent zone. This 
includes:</t>

<t><list style="symbols">
  <t>changes to the NS RRset</t>
  <t>changes to glue (if any)</t>
  <t>changes to the DS RRset (if any)</t>
</list></t>

<t>Only for those specific cases is the descibed mechanism proposed.</t>

</section>
<section anchor="processing-the-update-in-the-dns-update-receiver"><name>Processing the UPDATE in the DNS UPDATE Receiver</name>

<t>The receiver of the DNS UPDATE messages should implement a suitably 
strict policy for what updates are accepted (typically only allowing 
updates to the NS RRset, glue and DS RRset).</t>

<t>Furthermore, it is strongly recommended that the policy is further
tightened by only allowing updates to the delegation information of a
child zone with the exact same name as the name of the SIG(0) key the
signed the UPDATE request. I.e. an UPDATE request for the delegation
information for the zone <spanx style="verb">child.parent.</spanx> should only be processed if
it is signed by a SIG(0) key with the name <spanx style="verb">child.parent.</spanx> and the
signature verifies correctly.</t>

<t>Once the UPDATE has been verified to be correctly signed by a known
key with the correct name and also adhere to the update policy it
should be subjected to the same set of correctness tests as CDS/CSYNC
scanner would have performed. If these requirements are also fulfilled
the change may be applied to the parent zone in whatever manner the
parent zone is maintained (as a text file, data in a database, via and
API, etc).</t>

</section>
<section anchor="interpretation-of-the-response-to-the-dns-update"><name>Interpretation of the response to the DNS UPDATE.</name>

<t>All DNS transactions are designed as a pair of messages and this is
true also for DNS UPDATE. The interpretation of the different
responses to DNS UPDATE are already fully documented in <xref target="RFC2136"/>,
section 2.2. In particular a response with rcode=5 ("REFUSED") should
be interpreted as a permanent signal that DNS UPDATEs are not
supported by the receiver.</t>

<t>The case of no response is more complex, as it is not possible to know
whether the DNS UPDATE actually reached the reciever (or was lost in
transit) or the response was not sent (or lost in transit).</t>

<t>For this reason it is suggested that a lack of response is left as
implementation dependent. That way the implementation has sufficient
freedom do chose a sensible approach. Eg. if the sender of the DNS
UPDATE (like the primary nameserver of the child zone) only serves a
single child, then resending the DNS UPDATE once or twice may be ok
(to ensure that the lack of response is not due to packets being lost
in transit). On the other hand, if the sender serves a large number of
child zones below the same parent zone, then it may already know that
the receiver for the DNS UPDATEs is not responding for any of the
child zones, and then resending the update immediately is likely
pointless.</t>

</section>
<section anchor="management-of-sig0-public-keys"><name>Management of SIG(0) Public Keys</name>

<t>Only the child should have access to the SIG(0) private key. The
corresponding SIG(0) public key doesn't have to be published in DNS, it
only needs to be available to the parent DNS UPDATE Receiver. Keeping
all the public SIG(0) keys for different child zones in some sort of
database is perfectly fine.</t>

<section anchor="bootstrapping-the-sig0-public-key-into-the-dns-update-receiver"><name>Bootstrapping the SIG(0) Public Key Into the DNS UPDATE Receiver</name>

<t>The primary audience for this DNS UPDATE based synchronization
mechanism is "non-registries". In those cases there is by definition
some mechanism in place to communicate information from the child to
the parent, be it email, a web form, pieces of paper or something
else. The same mechanism can be extended to also be used to
communicate the initial SIG(0) public key from the child to the parent.</t>

<t>Should a "registry" parent want to support this mechanism (as a
service to its unsigned children) then the interface is usually EPP
<xref target="RFC1234"/> and would require the implementation of a new EPP
extension, which is clearly doable.</t>

</section>
<section anchor="rolling-the-sig0-key"><name>Rolling the SIG(0) Key</name>

<t>Once the parent DNS UPDATE Receiver has the key, the child can update 
it via a DNS UPDATE just like updating the NS RRset, the DS RRset or 
the glue in the parent zone (assuming a suitable DNS UPDATE policy in 
the parent). I.e. only the initial bootstrapping of the key is an 
issue.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations.</name>

<t>Any fully automatic mechanism to update the contents of a DNS zone
opens up a potential vulnerability should the mechanism not be
implemented correctly.</t>

<t>In this case the definition of "correct" is a question for the
receiver of the DNS UPDATE. The receiver should validate the
authenticity of the DNS UPDATE and then do the same checks and
verifications as a CDS or CSYNC scanner does. The difference from the
scanner is only in the validation: single SIG(0) signature by a key
that the receiver trusts vs DNSSEC signature that chains back to a
DNSSEC trust anchor that a scanner trusts.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations.</name>

<t>None.</t>

<t><vspace blankLines='999' /></t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements.</name>

<t><list style="symbols">
  <t>Peter Thomassen and I together came up with the location mechanism
for the generalized notifications, which this draft relies upon.</t>
  <t>Mark Andrews provided the initial inspiration for writing some code
to experiment with the combination of the location mechanism from
the generalised notifications with DNS UPDATEs across zone cuts.</t>
</list></t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC1996' target='https://www.rfc-editor.org/info/rfc1996'>
  <front>
    <title>A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY)</title>
    <author fullname='P. Vixie' initials='P.' surname='Vixie'/>
    <date month='August' year='1996'/>
    <abstract>
      <t>This memo describes the NOTIFY opcode for DNS, by which a master server advises a set of slave servers that the master's data has been changed and that a query should be initiated to discover the new data. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='1996'/>
  <seriesInfo name='DOI' value='10.17487/RFC1996'/>
</reference>

<reference anchor='RFC2136' target='https://www.rfc-editor.org/info/rfc2136'>
  <front>
    <title>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
    <author fullname='P. Vixie' initials='P.' role='editor' surname='Vixie'/>
    <author fullname='S. Thomson' initials='S.' surname='Thomson'/>
    <author fullname='Y. Rekhter' initials='Y.' surname='Rekhter'/>
    <author fullname='J. Bound' initials='J.' surname='Bound'/>
    <date month='April' year='1997'/>
    <abstract>
      <t>Using this specification of the UPDATE opcode, it is possible to add or delete RRs or RRsets from a specified zone. Prerequisites are specified separately from update operations, and can specify a dependency upon either the previous existence or nonexistence of an RRset, or the existence of a single RR. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2136'/>
  <seriesInfo name='DOI' value='10.17487/RFC2136'/>
</reference>

<reference anchor='RFC3007' target='https://www.rfc-editor.org/info/rfc3007'>
  <front>
    <title>Secure Domain Name System (DNS) Dynamic Update</title>
    <author fullname='B. Wellington' initials='B.' surname='Wellington'/>
    <date month='November' year='2000'/>
    <abstract>
      <t>This document proposes a method for performing secure Domain Name System (DNS) dynamic updates. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='3007'/>
  <seriesInfo name='DOI' value='10.17487/RFC3007'/>
</reference>

<reference anchor='RFC2931' target='https://www.rfc-editor.org/info/rfc2931'>
  <front>
    <title>DNS Request and Transaction Signatures ( SIG(0)s )</title>
    <author fullname='D. Eastlake 3rd' initials='D.' surname='Eastlake 3rd'/>
    <date month='September' year='2000'/>
    <abstract>
      <t>This document describes the minor but non-interoperable changes in Request and Transaction signature resource records ( SIG(0)s ) that implementation experience has deemed necessary. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2931'/>
  <seriesInfo name='DOI' value='10.17487/RFC2931'/>
</reference>

<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname='S. Bradner' initials='S.' surname='Bradner'/>
    <date month='March' year='1997'/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='2119'/>
  <seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>

<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <date month='May' year='2017'/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='8174'/>
  <seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>

<reference anchor='RFC1234' target='https://www.rfc-editor.org/info/rfc1234'>
  <front>
    <title>Tunneling IPX traffic through IP networks</title>
    <author fullname='D. Provan' initials='D.' surname='Provan'/>
    <date month='June' year='1991'/>
    <abstract>
      <t>This memo describes a method of encapsulating IPX datagrams within UDP packets so that IPX traffic can travel across an IP internet. [STANDARDS-TRACK] This memo defines objects for managing DS1 Interface objects for use with the SNMP protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='1234'/>
  <seriesInfo name='DOI' value='10.17487/RFC1234'/>
</reference>




    </references>



<section anchor="change-history-to-be-removed-before-publication"><name>Change History (to be removed before publication)</name>

<t><list style="symbols">
  <t>draft-johani-dnsop-delegation-mgmt-via-ddns-00</t>
</list></t>

<ul empty="true"><li>
  <t>Initial public draft.</t>
</li></ul>

</section>


  </back>

<!-- ##markdown-source:
H4sIABBTNmUAA7VbW5PbOHZ+x69ANA9puST5MrPZuFObpO1uz/Tu2O1029ma
2trKUCQkYZoiuQTZssbl/57znQOAoKT2ZKuyfnFLIoCDc/3OhfP5XHW2K825
nlz0Xb3NOlut9eW7O31pSrOmj3Wl32ZVtjZbU3X6wWb6kn6eqGy5bM3DOX/S
H5si64zT9Spdd12t6nbLf6uizqtsS+cUbbbq5r/Um6yy86JydTMv4pL5dr3t
5nTIvKCf5s+eKex7rj9fXny4+qJy+rCu2/25dl2hlG3ac921vetePHv28tkL
lbUmO6djO9NWplO7ur1ft3XfnONGN+/1n+kL3O97fKnuzZ6eKIYF80vQppTr
sqr4n6ysKzp6b5xq7Ln+S1fnM+3qtmvNytFf+y3++KtSWd9t6vZc6bnS9M9W
7lz/caHvOlPRTlv+Uu7+R9x6/EPdrokRv/Ltz/WHjdF3O1NYt4lU6Td1XxXC
RazI6WMHHuBBI9+ZbWbLc81cXTi//39av4Pr7KozpTP0m1GqEqE8mHNiYRAR
f5rP5zpbuq7NcmJDIkk7SFKf2YVZ6I4oJcHf3jrTzXRTO2eXpdHrsjfJx8s7
1ZqcmOym2m3qvix0Vu6yvdNLo+9N09HOxMkqp8/dzphK5xtLD/1KrNckBN2Q
SKtO4fNC/1DvzINpZ1jUgEabGyIko12cruou7A3a8syZhVJ/3tCe+Fycvoxf
GKjglQMF1qne9VlZ7vXOq87KVnTBZd/pnSWx0/9Yk20hFKh/awpIq8r3Qhn9
ytTreleZVpf23tBu5lNj8o4orfUme8DVTJXTvoFH1V6v+pbWtnTRmji5dYqE
2hNJHRSAnsE6umWXkbjqxub0deXM33ps5OjmUCWYJjRPuyYjVm0yRwQ8mIJp
J9Lo9n57TSwhHuVZQVYMxttOVWC2Xtf4hvi60DfE+jYDVTPQsbNlqcND/Igm
JthSZ0Q88QyGAY9C521NDnt3cs6m3uHm98Y0zL2RQEQSYa3NmftEaGGast6b
gq+Gz3Xes0uiG5C+EZGuzzd0djwLT97oV1f69urtzX9fXcK80oUWWgiZ5nVZ
Zsu6ZVKFhu+JQf1SZ925+sum6xp3/vTpmr9b5PX2qbivT0//Dmf217P/n32m
CxbttnYdKVuOiwTdJEk48JDUkFXeX3Sm68ZA1Ul/yHGZLh8UjSS4NCp7IPeR
wWAhXFJHdkTi1/TZGoxhiU51luew2oY+0emkba6DssFxbG1RlORevoHnauui
z9llqTe0Byni3dVr7ey6IhYPFuZEEz/8eEm7rS2psoW2OW/3TuiBpBQ5TgpB
7RoXJRdMKtrVu4w8i277qsK3rp5DW+iAyevLO+3yrCKTcxPW58nru5/evdZq
+Ha5Zy7JSQvNFuNMXEYK15GN0lWXJWlh5xmLnb1L02eDu8DN6GwiQ2W00lmi
GqpOVPccG6HwePzS+0wo2XD8FDQ+xfOa6fRe8/QJ+usnBK+s6jZ64j185nxJ
UrY7m9+zmx5T4D1GvD27l0xX/XZJ9k0XJxXdLbP83mGrvOwLUCL2Qy5xtbK5
hacGr11Z7xZQob2mvcmiyIKzpgEbWcdqrw/zE/pA61XHKwu5s6Wdswpeb9uU
5pPt9uGiQjiUu2XxuIV+Rf54TR6uUnC+M807FTVbCN3we0N3y0r7Kx0K3/iu
7nh7Xq3PnDFKLNGabuXtcD2smVd4fk+wZBq8DvsbMhNoo4LykZl2xnu1wBWK
BYEtdEVGSYHPQnInvppYomBUJFp2UFjECjBcvUWkrx73gaQNWYmozyE98bvE
s+COOSaxzkB4EO0jsTHVDwmIrHAiL4lqSwqz7DMZMu4p2FAkCmjQmbxvQ7S5
u/7+jPjGatzR105Mjm5xmmC3oXMlluN2pqXbE62icWN9o98fbGEoNjW2QBwk
R7hGHCSR2i15thbXTwSpq5HgbaVo0S/isITaIJ/pQr+RQLytW8NhD1GUY37x
QHpJwJgFSjt62bGFUgCPpjTmY9ax1wXdWelqhh98KUURjtwaq3SVIJGzAQdN
/fVH5kPK8Keq3pHfWxsG4FDsmw/Xb37Snz//0+2b189fvvyXL1/4xBNSUvLQ
i+ffhofki2+fPfs9fQH5UODY0jm82ouRIGLlMvHwg0jZ3INSEpvp5n73l98+
//JlQZEBdm2Zz4Afagy9NQXhtt6R9zHZgyWvsWrrLbMCUGu96QSbBMxCILdj
S1HxuYP96JjfsHl4BsGT9ZpugPCqvvlG3w5m6LBE4De7SEob4E/I/0+ePHn7
8e7DkyeTWfgbnA+fb6/+6+P17dVl+Hz3w8WPP+KDCh/Sp+9+uPn44+X403i3
1zdv3169u5QNsQf9qg++ZjoufuI/Oew9eXLz/sP1zbsLnCyqmDgOZEywjSXc
FXGuaQ3kliH6uby1SxHiq9fv9fPvgiyfP39JiiEf/vX577/78kXtCGbLgezs
5aO48aYxZH+2Yq3PyUI7UvsZjiAMsqs0Aw5GDSHaZ/ojOdbX5Fn+Q6lXhEl7
ZyKmCVEoxGKcKaE92lsXAk9fCdxWcsMQfBjKjLyhhlOlrCmDz3jUISp/icQh
Og5zpDx2m7XwzpmDVjFXNwDcFMNTj06beChkUxOPoe/Q3edAeUSQj3GAPuS7
/U1BWwv4T46rB2q7HtKi2cAOEOPTDoBGYgeRWRLWIh8Af55eR3IWDtp8Iomf
YNLOlOWcjKPu29wUakBqJLcLYoj3bp0LUjrIO3Ys1sQHkga6LaJly/EerlWH
/TmPIfdigQx2jFIT2Y2kNohJbcclClbyIZakqdpIHAln1RCSL+CXvaSHS526
ELS1HUlRRQ7CsY9xztFtoNgglfh4s3ywde+A1DgsjHk+FhJHqBMQSvmfHzuG
5fLxPWopcwnckUWS0rJSEo5QyJ7doEJN2buvxM+dzyVcBFrfpFEIaUmfHq5U
8msIS/ITUeQcx1SO/wQhHnBogACkcxzx2bpxAahEUcBx6xDqJc8BuiA/fidf
WqyMNYbk5EDQq5pYevQ9nzNpereZ+MQXBlLhq7KcDLR60NqaFTSZKN4PCAWE
fGX3sAcXNcAHUrB7Sg/E6wwoWvF1yRiBuqCXe0kOHCBDOwUjxFXRAbUUDoaH
KJuwDYiZinq6mlSZvsgjYEhxHwAO1GKNSMA+CRpNt1RJiUGswoYn9eiYYDL+
cuReyYkAxDNIJjXZZveGgaSsJdo7URCCJBm8SuDWGXJBukyKZKbwH5JU6I1N
cPJwPh2oyDAgDdsJxrarg2cKFDbgB1Eh8qmTHEogT/JjxXSCNkSqsq7v+4aL
NiRiSgTID2TdEbvIOQRN6ZTPs8lbrtfs7fb+2QgLw60Dii1CYhopFUSS4phg
WEQXbWwpL/RfeUQN0BZygkKbTygIMuSSa/p4OkKHsp71TQ0L8hrGSwsQeuSR
M462rHCSkopjH2fJB2nsUbDTZ0TdtgkRbZRj0MbgNKTQNxIfRFsKYojD/tXA
4zomv4/X+BDkEDaT48X79Q1vJfXDFaqs5Pu99XT7husO4dKXd1N61OYbxXrD
pkcBYUbc5YqI5U2CT5LbpVejL0F/YdRp2oW4WB04I5qJkinbwvpY9HQWUeir
Y47zirylXJ/YxBfMSePPGBVLZABNQ6XhwBKsCwDBy43USiclFEYWDNcRF/xV
ybRprWUCsmjp4l6yvTtXXJie/KZc2IVYLmhGO/o3fa1dTxbjOt6Fd93XPdcZ
K0Q7k7OCIKjT960z5WrCZnJpVytyxFX+Gw4fsK0Iz5r4JMgN3tnzKeG4L+iG
TcgddoRTRBvMJ0JegzfMgg/RZ17768ZWSXXOO26FOI3aiCjOSDCJSxxnoeCc
JNchm1M+m5uN/C772kglKSWdvduIe/G654lcGsWNFDPQy8GEbbkgH0Oofcjd
4aIyToRijXvQJt6H86jrg2xDMjm6hJ6Mk9AJFG4yoABKVLZgiVP+loV/XIge
cePgCL9wIGwgOivX5C67zVYwcWhEhApG5vbbrSFPneu83TdcoN4TQ9n5qWDw
o11kI8nJ2fRXsdZJNoM2CTFKnCfzyFIKO2zghe36kv1gkkZzZR2KQaima2sU
FJxKAJ8voAiOEpaR7RAwWQ6wyMsXEeegqONdxJnrl7+YvFOhnFaTB98H9Rwg
gw+fohSuoe+zktsrAwxWHMBCJ0ZOLsRivmr9WRISlHQdODd4xJ/FxpOviJIF
OSyRCyjv4LhIk6G7AvnodUncXsG8jt1o0ibxRh8SZHF0/wAvx7cZuTowURqH
x45Efg2/iAFHL+R9DbllrEa1HqTmM4LrBuR7kMKHR62Bl9QfyHRsVZf1eq+U
VHTUOYU+lHqiEXDxFaqX6KsUr1ChGUcQkgAAGRFSGVG/+wpNnogMxFlE4JQl
viSndLSLsIe2EM8If2UfoMK0lFOKj6FkebrFLL3pwSAWAxji3iCRttMUgDPJ
2Vd9xeUrUggpKXuDSZLK3yiGjs9joS4RQ4ZuCi1Xe5NJDTDTEEvHAJ4hN7J8
+CzfVn11/e7y5TTpchLcKPlRFZTTAwyPzx4Qscmxo/QpbWQXCpqCSnFtB4q2
PeEWoD5vVOnTZMxLbjBzQk9KUESLQ5mm5EbTcq8Ks6L4hRVwidIUxTNhT+6+
JTv53iuEKT2L1MqkY0v5B9lTu4/64h1KzasUkPu1XI9cW0qz6PRBHzcQRepU
WHQfgxjEgRFU4K04FKd72dA+lssT7yufLCjRRJ/fHlOYxNHZsE2o8OYk7lZF
ay0IzNgqUktUkv36BH3AA5KveS0LZSWycI/PpJBFfgCtKbGZlW3Njs6T+pGA
1y0pGiLENNgA11Rs16Mqn416vhKdBtncBXlGJQAE9aCYtslNWw1YqM2kmMuM
T4OR5O7iGTIVLoISijMtaze7+9UIipBLYI/ATsJ6lO1/JB6MW8IHoAmHy5RA
MPp6hcyOBVL5viX4rYb+MPuBUdIo0Gpd14Wv5c1CvSjWrbNS+UjJKFTYHuAz
HdQXlhljS4IpljkzS921B1yWa1Z7LZUWaQIcAUHf2JSUhXQ41CBqyeAxjKIo
InDmiHyNYcSeUNxWc3RFWF7KIISoAbtaN5QIvqIIjr/lupo0J05Ft4WvbYQh
BQFWUpAZMtmYiY7HAMo6H2qao9pBdjpWf6N/TJboD1m7lkrJyQWhpTpcyYf7
xwtZ1/PLpJXGAeP2llNBEqF4ajhd5ccnCGhXZktsz8ORXSgICIBGqOShEeaX
BwufkxjyhT5fv9Nhuf58e4vTvujPjrRriz8aEjL91/FlvyglHmi8SUBaNerY
Uqj0MC6NV0ilwz5fWXJUxQmlgUCcGiWf6LULfufUcRKT/QEhPhJSY+oREePZ
UFLl1EW0tHfcYlOPym2aWFpkHNdAfPuai2MFHjcM5Dm5l6Zd3GXcK6UzF/qO
t/rDcxk/WXFFmoD4hH3/KZWbkIZdfcoQ2Fkt5foM/EgMOPFn323/Odye9xpV
VryahLkEUg+vHZKaP9e/+/bZc51jSmYeEvSkh8+xRaoujgspXOgIpigg9Ngf
ax+lOrs1KkGY6dPg6JLL6LWgOrfxRiKUjYo9abXlTAowGp70ISuhWmK0qKqI
F47dpxAgiQs/3wmfj+pOJ++OFA62wuz5mWsBj3uLA59wspUuQTuAHnFLuGzU
MF9X4rQwVLpiDhSywROOLOjVCzzoDYSVS5HjCMqVJMODUh2oRqIbF+9+0i9w
9ReaJycxGUS+6h+mGV8vtaW5Tih3nkWXodDRC2KRJ7+uUXE2hn+JM4X/B9VJ
MCcKcKc4k+rNi585yNit7WIp8y6vGxMv9j6EsrfRW6RZuGZYSvl7IVVW4ECU
UHntrm7LQhAGvkf05uaSavqWVY6MPYLIdJczwkmsUIIsp2MY/2uA8SrF8WOl
lmq5b5TEPH6FUkcmxeCQistYB8sZZVc3VOltFav0qcj5US5YRKRUaeVRm48g
JC06uaklFfh6WuVJVzJkZNw5MfhJ1KKDGSc9/onHmsAtQlZTfbxsKK/GZ9QN
WCPixTzPiDFuqGG4nJvhQ5AIoIYbTdALJDNBq9Nqwqi+cOu1T8bNdFDGtHF6
3AgTwBjSRSTPvQWW3WuFPiyG1ASRSszJOh9QPRxj6MvRNQZt0YcAT1R4/IC7
M2Eod+j8V1Nc93AixoYyFWdfeb3dIpcphkqFJw9VdlmqOpTCTBVaWik1B8Q8
4mmgsmmMiZBMyidcqmNU48FYinD8DIvUL6VCaIpUbn6y0dfwSJ/H30dv8Aiw
CT8zYT8zkYvDuM93llwuF7BsV8rzUujhGmtCarwhX+VwW1+tTsqdMYti68u7
ElWUmyo36U1j0cI/XfgUM64ZUYMUuFIjYvyDntdhqCkrQp6cpHBBC2JXjM7x
Ncgh52HBwURJVn5vnpnrMGkKYZL/fyrNpTAGsRvmoRvTQgywymuWtRs1/N0A
LVd9ubIYFlVJboY+5XEalmJoKw0jHnreyvFD6TEMjcs4iUwwnHERsjOfSGts
SfbCpVIuB4XsbMaVJKDzi/fXPJ87Xfgx2jSwRXgOR+pMmvhGKINpDHyRjGf5
oSzj5cjkNJlll5M2sH1NxaEPEHg0zp5ORdswluM7KZiBE/KcH/NMe91ZidrM
3g/gnJwT4ym0Gcr+vP2LxQsZa8layvt7tPezgQOshG1eF+YPv9Nnk9urNx/v
ri4n4VUDdTzVlEFDSG4QVuxeZt1R6QLTfK5vgAtGDVlBDuK7Q+Ss6oEiyB49
CT/Cw2NOQ2Eovhbh611DK3Ds+klwsZRFUHFo17HaAU3vMMmPwpytFMvadlPt
vc7AnlgCrKSh6FfosGIhw9mdIEOUO4I3l95bcOGZLrP8Xt5uGC5amhXGAtRB
HTNOMUJfAA0y4d7BY3A8ro9jnKvWGMpFMaubb2Su1qHGCW6RObY1MWKhr9aL
UDPy5bIhboYi6RlqMb7scIRlAx6JcWMqjph/xoQDInjpH+CyTYU7+xrmgZhq
HoMg/u3wHor3HfW9OiPx4mWN1gwR8BQDIZuiZ22QoY/wPgLkpFI56RvfQmRt
IV9FtI35EC5AB1GaM4xtq3TAbGlKX5RnL5s4LX9Vy0WwaKe+hp91KlX/GN5S
o/HXSVCezKaHflJKxywEq0PehlIf4YcCY9Ty4oef4WtqsuWSHBb7xuSVNGB0
iZLvpdXwJ7N3HtclzaLNECWAiFwEGH5x2m3gKYgxaA1PDd0MzAFU/9zJlr4w
KzmMeDRiD9CRYgVDW8T5p5K3LUYB5gRMXNBlTMNvFZTpoEWCC6ROFx3waKIQ
L9OEQiGUIUQcsBWhUiI8ck+ZMXlV1x1m75omiOSIs4hKh4EnkiuOMdgdSqHc
XI8tsGSJtF2RyG8IOfokZqjNgsJJVVfzYdhw4scQ4B0EnHehOUYOesjUFV85
2YnCR4mpPVQOCJv2FReCxnlrmB8O6aga5DLj6dhO3rEj3dU7s+SK3kxGqDiH
azJMKaEtX+N9AEgML9xJzGRrGwjyjVru4hR+hg3hdmjeqpROdp64GgWrYy08
ojzRKBLqnX/PR088I/eToG5+IEv7OKcPZiYZuCj4FZvHEa2+SucNaZup2HEX
kMEKjE6aMVfv3/sB8+cvvv3OD5gLYAvp4ongEGstWB6nkWYygIPtubfCGIIb
PDKyXcvbMYnaQl8TzPu4ncWaLbF0lrAzH96uAThnnJau/6WniMoBJ75PMU6g
RlknqQfr1fHbN75OxpP20i3zKd7IzAKArnSinlOfpdTB3wVdWY6M2Uc+qIzl
10QUz0lK9nqHKQu0QV/X3G8L79Og87Mfz0uT2o0LpckIU40ZaqlpZLEho/Dy
meNRLrpAJ910/dCXqIstLXdfw5TcJjUT6YkM8AJaFzMZPUyXMA47LtZN/MMT
qQRz4pZOgz2eese+kPzuiXvIShuuqmKz3Xb7E7l7jG9FktQM7SIlyVboOjAu
xbgVpq7SUXYOMUJNMqoULH4YA/fTkF6jPKH8PrGHM4fv3sT5naGgF68r4zuY
LUxe2pNV/DCJB8NEGMKX5p5/jNfR7fJN3QbYGCiUPSWpuXh3caxm72oOQXP5
h+cu8vvwUgtnbgtUgd4Tjm+JH6SImMtgPl8TFWuB0TnYTIoWk1PpMKW1faUj
fHm0nRD8jAwW8XskreGhIgwMMiFvs/Ye3eLW7NwwuJlaH/Gose1QD9hhBplf
UoQqUMpClAAnfqK4YRnHJCn1dhk6xV63ji/CaoA9kpu448lsPyk+JDfHzV28
uwlpguuvJQ/+gSJF3WJ4mKMSJc813hpeynxzMus5BTP+vjf6yXL/nQK5cMkH
Mt4BNv2/MFr+vpBAAAA=

-->

</rfc>

