<?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.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dyson-primary-zonefile-initialisation-00" category="std" consensus="true" submissionType="IETF" updates="9432" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title>Initialisation of Zone Files on the DNS Primary Server</title>
    <seriesInfo name="Internet-Draft" value="draft-dyson-primary-zonefile-initialisation-00"/>
    <author fullname="Karl Dyson">
      <organization>Nominet UK</organization>
      <address>
        <postal>
          <street>Minerva House</street>
          <street>Edmund Halley Road</street>
          <street>Oxford Science Park</street>
          <city>Oxford</city>
          <code>OX4 4DQ</code>
          <country>UK</country>
        </postal>
        <email>karl.dyson@nominet.uk</email>
        <uri>https://nominet.uk</uri>
      </address>
    </author>
    <date year="2025" month="March" day="23"/>
    <keyword>catalog zone</keyword>
    <keyword>zone file initialisation</keyword>
    <keyword>primary server</keyword>
    <keyword>master file</keyword>
    <abstract>
      <?line 47?>

<t>This document describes an update to "DNS Catalog Zones" (<xref target="RFC9432"/>) that facilitates a method for the primary server of a DNS zone to create the underlying master file for member zone(s) using information contained within a catalog zone.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/karldyson/draft-dyson-primary-zonefile-initialisation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 51?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Once a DNS zone's master file exists on the primary server, there is a standard way to automate the distribution of that zone to secondary servers defined in "DNS Catalog Zones" (<xref target="RFC9432"/>). Further, there is a standard way to dynamically alter the contents of a zone defined in "Dynamic Updates in the Domain Name System (DNS UPDATE)" (<xref target="RFC2136"/>).</t>
      <t>However there is no standards-defined method of initialising a new master file for the zone, ready for such operations.</t>
      <t>Various DNS software products have proprietary mechanisms for achieving this, some requiring that the zone master file is somehow pre-populated on the primary servers' filesystem.</t>
      <t>Operators of large scale DNS systems may want to be able to signal the creation of a new file for a new zone without wanting to be tied to a particular vendor's proprietary software. Further, they may want to avoid the need or overhead of engineering a bespoke solution with the ongoing need to support and maintain it.</t>
      <t>Having dynamically provisioned a new zone on the primary server, the operator may then manage resource records in the zone via "DNS Dynamic Updates" (<xref target="RFC2136"/>). In this scenario, they may also want to distribute the zones to secondary servers via "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>This document defines a vendor-independent mechanism of signalling to the primary server that a new file is to be created for the new zone, populated with basic minimal initial zone data, and then loaded into the server to be authoritatively served.</t>
      <t>The scope of this document is confined to the initial provisioning and loading of the zone on the primary server, including the creation of it's initial zone file, configuration and state.</t>
      <t>Broader provisioning of the base nameserver configuration is beyond the scope of this document.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following is in addition to the conventions and definitions as defined in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>The use of parenthesis in the examples is as described in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 5.1.</t>
      <section anchor="primary-server">
        <name>Primary Server</name>
        <t>Within DNS servers, specifically when transferring zones to other servers, there is the concept of a primary server and a secondary server in each transfer relationship.</t>
        <t>Each secondary server will be transferring the zone from a configured upstream primary server, which may, itself, be a secondary server to a further upstream primary server, and so on.</t>
        <t>However, within this document, the term "primary server" is used specifically to mean the primary server at the root of the AXFR/IXFR dependency graph. This server is where the resource records that form the zone's content are maintained in the master file. Thus, that server does not transfer the zone from another server.</t>
      </section>
      <section anchor="master-file">
        <name>Master File</name>
        <t>The term "master file" is as per the description in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 5, noting that some software products offer data stores for the master file that are not an actual file on a filesystem, such as a database.</t>
      </section>
    </section>
    <section anchor="catalog-zone-properties">
      <name>Catalog Zone Properties</name>
      <t>This section specifies new Catalog Zone level properties, additional to those defined in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>If initialisation of the underlying master file for the member zone is not required or is disabled in an implementation's configuration, then the various initialisation properties defined in this document <bcp14>MAY</bcp14> be absent, and in that context, their absence DOES NOT constitute a broken catalog zone.</t>
      <t>However, if the initialisation of the underlying master file for the member zone is enabled, and the properties and parameters defined below constitute a broken configuration as defined in this document, then the catalog is broken, and <bcp14>MUST NOT</bcp14> be processed ("DNS Catalog Zones" (<xref target="RFC9432"/>) Section 5.1).</t>
      <section anchor="schema-version-version-property">
        <name>Schema Version (version property)</name>
        <t>For this memo, the value of the version resource record is unchanged.</t>
        <t>"DNS Catalog Zones" (<xref target="RFC9432"/>) Section 3 is clear that "Catalog consumers <bcp14>MUST</bcp14> ignore any RRs in the catalog zone for which no processing is specified or which are otherwise not supported by the implementation." and as such the addition of the records outlined in this document will be ignored by implementations that do not recognise them.</t>
      </section>
      <section anchor="zone-file-initialisation-init-property">
        <name>Zone File Initialisation (init property)</name>
        <t>When suitable configuration is activated in the implementation, and a new member zone entry is added to the catalog, the primary server <bcp14>MUST</bcp14> create the underlying master file for the zone using the values of the properties and parameters outlined in the init property. The implementation <bcp14>MUST</bcp14> also create the relevant dynamic zone configuration and state, load the zone, and serve it authoritatively.</t>
        <t>It is not necessary for the catalog zone's primary server to be the member zone's primary server, however, the same server <bcp14>MUST</bcp14> be the primary server for all member zones within a given catalog zone.</t>
        <t>The implementation may permit the following on a global, or per catalog basis, by way of suitable configuration parameters:</t>
        <ul spacing="normal">
          <li>
            <t>The master file is ONLY created for the zone if the master file does not already exist</t>
          </li>
          <li>
            <t>The master file is NEVER created (effectively, the initialisation capability is disabled for this catalog or primary server, and the master file would be expected to exist as is the case before this document)</t>
          </li>
          <li>
            <t>The master file is ALWAYS created when a new member zone is added to the catalog zone, overwriting any existing master file for the zone</t>
          </li>
        </ul>
        <t>If a server is consuming a catalog zone and is configured to be primary server for the member zones therein, it <bcp14>MUST</bcp14> perform the actions as defined within this document. All other servers <bcp14>MUST</bcp14> ignore the additional records defined herein, as per "DNS Catalog Zones" (<xref target="RFC9432"/>) Section 3.</t>
        <t>A number of sub-properties, expressed as labels within the bailiwick of the "init" label, define the initialisation parameters.</t>
      </section>
      <section anchor="start-of-authority-soa-property">
        <name>Start Of Authority (soa property)</name>
        <t>The soa property is used to specify the SOA that will be applied to the created zone file for the member zone.</t>
        <t>There <bcp14>MUST</bcp14> be one and ONLY one soa property record defined in a given scope.</t>
        <t>Multiple soa property records within a given scope constitutes a broken catalog zone.</t>
        <t>See the <xref target="memberZoneSection"/> for clarity on scope inheritance.</t>
        <t>Absence of a soa property similarly constitutes a broken catalog zone.</t>
        <section anchor="parameters">
          <name>Parameters</name>
          <t>With the exception of the serial number, the SOA record parameters are supplied as three character-string values in the RDATA of a TXT resource record.</t>
          <t>The first being the MNAME value, the second being the RNAME value, and the third containing the numeric timer values in decimal in the same order as expected in an SOA resource record, as defined in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.3.13.</t>
          <t>All three <bcp14>MUST</bcp14> be present.</t>
          <t>The MNAME and RNAME <bcp14>MUST</bcp14> be fully qualified, however a terminal @ label can be supplied to indicate the member zone's name. In this case, the @ label <bcp14>MUST</bcp14> be substituted with the member zone's name at zone file creation. See also <xref target="generalBehaviourSection"/>.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <artwork><![CDATA[
soa.init.$CATZ 0 TXT ( "<mname>" "<rname>"
      "<refresh> <retry> <expire> <minimum>" )
soa.init.$CATZ 0 TXT ( "ns1.example.com"
      "hostmaster.example.com"
      "14400 900 2419200 3600" )
soa.init.$CATZ 0 TXT ( "ns1.@." "hostmaster.@."
      "14400 900 2419200 3600" )
]]></artwork>
        </section>
      </section>
      <section anchor="nameservers-ns-property">
        <name>Nameservers (ns property)</name>
        <t>Actual NS records cannot be used, as we do not want to actually delegate outside of this catalog zone.</t>
        <t>The nameserver parameters are supplied as key=value pairs in the RDATA of a TXT resource record, with the pairs separated by whitespace.</t>
        <t>If the nameservers are in-bailiwick and address records are therefore required, suitable address records <bcp14>MUST</bcp14> be created in the member zone's master file from the parameters specified.</t>
        <t>If the nameservers are in-bailiwick of a zone in the catalog, and an address is not specified, this would result in a zone that will not load - this denotes a broken catalog zone.</t>
        <t>There <bcp14>MUST</bcp14> be at least one ns property record.</t>
        <t>Therefore, a catalog zone that contains no nameserver entries applicable to a given member zone constitutes a broken catalog zone.</t>
        <t>The ns property can be specified multiple times, with one nameserver specified per entry.</t>
        <section anchor="name-parameter">
          <name>name Parameter</name>
          <t>The "name" parameter <bcp14>MUST</bcp14> be present, and contains the hostname of the nameserver as it is intended to appear in the corresponding NS record's RDATA in the zone's master file. See also <xref target="generalBehaviourSection"/>.</t>
          <t>The value of the "name" parameter <bcp14>MUST</bcp14> be compliant with "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.3.11.</t>
          <t>An ns property record that does not contain a "name" parameter consistutes a broken catalog zone.</t>
        </section>
        <section anchor="ipv4-and-ipv6-parameters">
          <name>ipv4 and ipv6 Parameters</name>
          <t>The "ipv4" and "ipv6" parameters are <bcp14>OPTIONAL</bcp14>. They contain the IP address(es) of the hostname specified in the "name" parameter.</t>
          <t>If the value in the "name" parameter is in-bailwick, and hence requires that the relevant address enties are also created in the zone, at least one of either the "ipv4" or "ipv6" parameters <bcp14>MUST</bcp14> be specified.</t>
          <t>The value of the "ipv4" parameter, if present, <bcp14>MUST</bcp14> be a valid IPv4 address, compliant with "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.4.1.</t>
          <t>The value of the "ipv6" parameter, if present, <bcp14>MUST</bcp14> be a valid IPv6 address, compliant with "DNS Extensions to Support IP Version 6" (<xref target="RFC3596"/>) Section 2.1 and <bcp14>SHOULD</bcp14> use the representation defined in "A Recommendation for IPv6 Address Text Representation (<xref target="RFC5952"/>) Section 4.</t>
          <t>An ns property record that contains an in-bailiwick name, but does not contain at least one address parameter constitutes a broken catalog zone.</t>
          <t>Only records within the member zone are within the scope of this document; if the primary server is also coincidentally the primary server for a member zone's parent, regardless of whether the parent zone is also a member zone, it is the responsibility of the parent zone's administrator to ensure the delegation and any required glue resource records are present in the parent zone.</t>
        </section>
        <section anchor="example">
          <name>Example</name>
          <artwork><![CDATA[
ns.init.$CATZ 0 TXT ( "name=some.name.server."
      "ipv4=192.0.2.1 ipv6=2001:db8::1" )
ns.init.$CATZ 0 TXT ( "name=another.name.server."
      "ipv4=192.0.2.129 ipv6=2001:db8:44::1" )
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="memberZoneSection">
      <name>Member Zone Properties</name>
      <t>The default properties outlined above can be overridden per member zone. If properties are specified in a more specific scope than the defaults, the most specific scope <bcp14>MUST</bcp14> be used.</t>
      <t>A subset <bcp14>MAY</bcp14> be specified in a more specific scope, for example, the SOA could be omitted, and just the NS records specified.</t>
      <t>The omitted properties would be inherited from the catalog level values.</t>
      <artwork><![CDATA[
<unique-N>.zones.$CATZ          0 PTR example.com.
soa.init.<unique-N>.zones.$CATZ 0 TXT ( "<mname>"
      "<rname>" "<refresh> <retry> <expire> <minimum>" )
ns.init.<unique-N>.zones.$CATZ  0 TXT ( "name=some.name.server. "
      "ipv4=192.0.2.1 ipv6=2001:db8::1" )
]]></artwork>
      <section anchor="change-of-ownership-coo-property">
        <name>Change Of Ownership (coo property)</name>
        <t>There is no change to the coo property; if the member zone changes ownership to another catalog, fundamentally, the zone's master file already exists.</t>
        <t>The scope of this document is solely concerned with the initialisation of a new zone's master file, and so in the case of the zone changing ownership, the initialisation parameters <bcp14>MUST NOT</bcp14> be processed.</t>
        <t>Noting that the primary server for a given catalog's member zones may not be the primary server for the catalog zone itself, nor the primary server for another catalog's member zones, operators should consider their implementation's configuration when planning a change of ownership operation.</t>
      </section>
    </section>
    <section anchor="name-server-behaviour">
      <name>Name Server Behaviour</name>
      <section anchor="generalBehaviourSection">
        <name>General Behaviour</name>
        <t>Some of the parameters specified in the initialisation properties contain domain-name values as defined in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.3, for example in the NS records and in the SOA. These will be used to specify values in the corresponding resource records in the member zone's file. The domain-name values <bcp14>MUST</bcp14> be fully qualified in the parameter specification in the property.</t>
        <t>Similar to its use in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 5.1, a terminal @ label may be used as a short cut for the member zone's name, and in such cases, the terminal @ label <bcp14>MUST</bcp14> be substituted by the member zone name at the point of zone file creation.</t>
      </section>
      <section anchor="member-zone-removal">
        <name>Member Zone Removal</name>
        <t>If the member zone is removed from the catalog zone, then the zone's master file <bcp14>MUST</bcp14> be removed along with related zone configuration and state data.</t>
      </section>
      <section anchor="zone-associated-state-reset">
        <name>Zone-Associated State Reset</name>
        <t>In the event of a zone state reset being carried out, the state of the zone's master file <bcp14>SHOULD</bcp14> be reset as if the file was being initialised for the first time per this document.</t>
      </section>
    </section>
    <section anchor="implementation-and-operational-notes">
      <name>Implementation and Operational Notes</name>
      <t>When configuring the use of catalog zones, implementations should give the operator the ability to indicate whether the catalog zone consumer is a primary or secondary for a given catalog's member zones.</t>
      <t>Secondary servers are not interested in the properties and parameters defined within this document and <bcp14>MUST</bcp14> ignore them.</t>
      <t>A given consumer <bcp14>MAY</bcp14> be primary or secondary, but of course cannot be both. A consumer that has undefined consumer status should default to secondary, which will result in backward compatibility with "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>It is not mandatory that the primary server for a given catalog zone is also the primary server for the catalog's member zones.</t>
      <t>As well as creating the undelying zone file and initial contents, the implementaion <bcp14>MUST</bcp14> also dynamically create and maintain related zone configuration and state. Further, the implementation <bcp14>MUST</bcp14> load and authoritatively serve the zone to clients.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document does not alter the security considerations outlined in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entries to the registry:</t>
      <t>Registry Name: DNS Catalog Zones Properties</t>
      <t>Reference: this document</t>
      <table>
        <name>DNS Catalog Zones Properies Registry</name>
        <thead>
          <tr>
            <th align="left">Property Prefix</th>
            <th align="left">Description</th>
            <th align="left">Status</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">init</td>
            <td align="left">Zone Initialisation Properties</td>
            <td align="left">Standards Track</td>
            <td align="left">this document</td>
          </tr>
          <tr>
            <td align="left">soa.init</td>
            <td align="left">Start Of Authority Property</td>
            <td align="left">Standards Track</td>
            <td align="left">this document</td>
          </tr>
          <tr>
            <td align="left">ns.init</td>
            <td align="left">Name Server Property</td>
            <td align="left">Standards Track</td>
            <td align="left">this document</td>
          </tr>
        </tbody>
      </table>
      <t>Field meanings are unchanged from the definitions in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC9432">
        <front>
          <title>DNS Catalog Zones</title>
          <author fullname="P. van Dijk" initials="P." surname="van Dijk"/>
          <author fullname="L. Peltan" initials="L." surname="Peltan"/>
          <author fullname="O. Surý" initials="O." surname="Surý"/>
          <author fullname="W. Toorop" initials="W." surname="Toorop"/>
          <author fullname="C.R. Monshouwer" initials="C.R." surname="Monshouwer"/>
          <author fullname="P. Thomassen" initials="P." surname="Thomassen"/>
          <author fullname="A. Sargsyan" initials="A." surname="Sargsyan"/>
          <date month="July" year="2023"/>
          <abstract>
            <t>This document describes a method for automatic DNS zone provisioning among DNS primary and secondary name servers by storing and transferring the catalog of zones to be provisioned as one or more regular DNS zones.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9432"/>
        <seriesInfo name="DOI" value="10.17487/RFC9432"/>
      </reference>
      <reference anchor="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="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="RFC1035">
        <front>
          <title>Domain names - implementation and specification</title>
          <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
          <date month="November" year="1987"/>
          <abstract>
            <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="13"/>
        <seriesInfo name="RFC" value="1035"/>
        <seriesInfo name="DOI" value="10.17487/RFC1035"/>
      </reference>
      <reference anchor="RFC3596">
        <front>
          <title>DNS Extensions to Support IP Version 6</title>
          <author fullname="S. Thomson" initials="S." surname="Thomson"/>
          <author fullname="C. Huitema" initials="C." surname="Huitema"/>
          <author fullname="V. Ksinant" initials="V." surname="Ksinant"/>
          <author fullname="M. Souissi" initials="M." surname="Souissi"/>
          <date month="October" year="2003"/>
          <abstract>
            <t>This document defines the changes that need to be made to the Domain Name System (DNS) to support hosts running IP version 6 (IPv6). The changes include a resource record type to store an IPv6 address, a domain to support lookups based on an IPv6 address, and updated definitions of existing query types that return Internet addresses as part of additional section processing. The extensions are designed to be compatible with existing applications and, in particular, DNS implementations themselves. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="88"/>
        <seriesInfo name="RFC" value="3596"/>
        <seriesInfo name="DOI" value="10.17487/RFC3596"/>
      </reference>
      <reference anchor="RFC5952">
        <front>
          <title>A Recommendation for IPv6 Address Text Representation</title>
          <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
          <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
          <date month="August" year="2010"/>
          <abstract>
            <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5952"/>
        <seriesInfo name="DOI" value="10.17487/RFC5952"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 292?>

<section anchor="examples-1">
      <name>Examples</name>
      <section anchor="catalog-zone-example">
        <name>Catalog Zone Example</name>
        <t>The following is an example catalog zone showing the additional properties and parameters as outlined in this document.</t>
        <t>There are defaults specified for the SOA and NS records, which would be used by the example.com. zone.</t>
        <t>The example.net. zone would utilise the default SOA record, but would utilise the more specific NS records.</t>
        <t>The default nameservers are in-bailiwick of example.com, which is in the catalog, and so the address record details are supplied in order to facilitate the addition of the address records.</t>
        <artwork><![CDATA[
catz.invalid.                   0 SOA invalid. invalid. (
      1 3600 600 2419200 3600 )
catz.invalid.                   0 NS invalid.
soa.init.catz.invalid.          0 TXT ( "ns1.example.com."
      "hostmaster.example.com." "14400 900 2419200 3600" )
ns.init.catz.invalid.           0 TXT ( "name=ns1.example.com. "
      "ipv4=192.0.2.1 ipv6=2001:db8::1" )
ns.init.catz.invalid.           0 TXT ( "name=ns2.example.com. "
      "ipv4=192.0.2.2 ipv6=2001:db8::2" )
kahdkh6f.zones.catz.invalid.    0 PTR example.com.
hajhsjha.zones.catz.invalid.    0 PTR example.net.
ns.hajhsjha.zones.catz.invalid. 0 TXT "name=ns1.example.com"
ns.hajhsjha.zones.catz.invalid. 0 TXT ( "name=ns1.example.net "
      "ipv4=192.0.2.250 ipv6=2001:db8:ff::149" )
]]></artwork>
      </section>
      <section anchor="examplecom-master-file-example">
        <name>example.com Master File Example</name>
        <t>This is the resulting zonefile for example.com as initilised from the above catalog zone example.</t>
        <artwork><![CDATA[
example.com.     3600 SOA ns1.example.com. hostmaster.example.com. (
                           1 14400 900 2419200 3600 )
example.com.     3600 NS   ns1.example.com.
example.com.     3600 NS   ns2.example.com.
ns1.example.com. 3600 A    192.0.2.1
ns1.example.com. 3600 AAAA 2001:db8::1
ns2.example.com. 3600 A    192.0.2.2
ns2.example.com. 3600 AAAA 2001:db8::2
]]></artwork>
      </section>
      <section anchor="examplenet-master-file-example">
        <name>example.net Master File Example</name>
        <t>This is the resulting zonefile for example.net as initilised from the above catalog zone example.</t>
        <artwork><![CDATA[
example.net.     3600 SOA ns1.example.com. hostmaster.example.com. (
                            1 14400 900 2419200 3600 )
example.net.     3600 NS   ns1.example.com.
example.net.     3600 NS   ns1.example.net.
ns1.example.net. 3600 A    192.0.2.250
ns1.example.net. 3600 AAAA 2001:db8:ff::149
]]></artwork>
      </section>
    </section>
    <section anchor="author-notesthoughts">
      <name>Author Notes/Thoughts</name>
      <t><em>NB: To be removed by the RFC Editor prior to publication.</em></t>
      <t>The term "Primary Master" ("DNS Dynamic Updates" (<xref target="RFC2136"/>) Section 1 is not applicable as the primary server noted in this document likely is NOT listed in the MNAME or NS.</t>
      <section anchor="is-catalog-zones-the-right-place-for-this">
        <name>Is catalog zones the right place for this?</name>
        <t>Much consideration has been given as to whether the primary server should be consuming the/a catalog zone, rather than simply serving it to secondary servers for consumption.</t>
        <t>It does feel a little bit like it muddies the waters between zone distribution and zone "provisioning" but:</t>
        <ol spacing="normal" type="1"><li>
            <t>In a catalog zone scenario, the catalog equally feels like the place for zone related parameters</t>
          </li>
          <li>
            <t>It feels less like Dynamic Updates would be the right place for it, for example; Dynamic Updates has specific purpose around updating existing zones, which seems further removed from this functionality.</t>
          </li>
          <li>
            <t>An API for <em>just</em> zone initialisation feels like a big thing that would likely be overkill, and probably not get implemented, and would likely be a part of a wider implementation's general nameserver configuration and operations API, which is waaaaay beyond the scope of this document, and possibly beyond standardisation.</t>
          </li>
        </ol>
        <t>It may be considered that this is "nameserver configuration", however, it has strong parallels in this regard to the "configuration" on secondary servers, including such considerations as to which entities are allowed to notify and/or transfer the zone, as are conveyed to those secondary servers in "DNS Catalog Zones" (<xref target="RFC9432"/>). Indeed, much of the same configuration may be needed by or shared with the primary server for those same zones.</t>
        <t>Implementing via an extension of catalog zones feels like it closes the gap in the end-to-end ecosystem whereby catalog zones + dynamic updates gives an end-to-end approach to the creation of a zone, its underlying master file, distribution of that zone to secondary servers, and the ongoing manipulation of records in the zone.</t>
        <t>TODO - add more detail explaining the above, reasoning, etc...?</t>
      </section>
      <section anchor="properties">
        <name> Properties</name>
        <section anchor="general">
          <name> General</name>
          <t>TODO: Do we need to signal the initial TTL of the records being added (SOA, NS, A, AAAA)... I think so... Could specifiy with an extra key=value pair, or could leave it to pick up from the SOA</t>
          <t>Do we even need to supply these properties (soa, ns, etc) ? The reason an operator would be doing this would be because they want to create a zonefile with standard tooling and then immediatly commence making dynamic updates to the zone. An implementation could simply drop in basic SOA and NS with the expectation being that the operator then <em>replaces</em> them.</t>
          <section anchor="acls">
            <name>ACLs...?</name>
            <t>Do we need to consider a mechanism for providing also-notify, allow-transfer and similar style ACL configuration? It seems limiting to certain use cases, otherwise, to assume that server level configuration of such parameters is enough.</t>
            <t>Some implementations facilitate this within the *.ext tree, but this is implementation specific, and unhelpful for operators using a combination of vendor products. Consider, for example, an operator using one vendor's product for unsigned primary, another for signing, and a third for serving the auth zones to the target network(s).</t>
          </section>
        </section>
        <section anchor="coo-property">
          <name>coo Property</name>
          <t>Are there any considerations around change of ownership that need mentioning or documenting here...?</t>
          <t>14/11 - section added to address this; is there anything else that needs clarifying or covering?</t>
        </section>
        <section anchor="soa-property">
          <name>soa Property</name>
          <t>Consideration was given as to whether things like SOA parameters should be individual records, but it seemed unnecessary to break them out and create the additional records.</t>
          <t>Should we permit the property to be made up of multiple TXT records so long as a given parameter is not repeated?</t>
          <t>Should we specify a SOA serial format? or an initial soa serial value...? If not, should we specify in the text, or leave it to the implemention, which may have a default, such as BIND's "serial-update-method"</t>
          <t>Given that it is pretty much expected that the operator is going to start making changes to the zone via dynamic updates, it'd be reasonable to expect them to be able to set those parameters. Which does beg the question, do we need to specify soa and nameserver values at all, or just specify that the zone file is or is not to be created, and fill some template default values with the expectation that the operator would immediatly overwrite them with "correct" values...?</t>
        </section>
        <section anchor="ns-property">
          <name>ns Property</name>
          <t>Is there a circular dependency or race condition issue here...?</t>
          <t>Do we need to consider the possibility of multiple IP addresses for a nameserver name? If so, maybe comma separate them like this: ipv4=192.0.2.1,192.0.2.2</t>
        </section>
      </section>
    </section>
    <section anchor="change-log">
      <name>Change Log</name>
      <t><em>NB: To be removed by the RFC Editor prior to publication.</em></t>
      <section anchor="initial-draft">
        <name>00 - Initial draft</name>
      </section>
    </section>
    <section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7U87XLbuLX/+RS4yp2JkyspduLkNuruptrY6Xqa2Knt7XZ7
584diIQk1BSpJUgrarp9lj5Ln+yeDwAEKMp2Zree2Q1F4uPg4HyfA4xGo6TW
da4mYnBW6FrLXBtZ67IQ5Vz8pSyUeKdzZQS8qJdKnJxfiY+VXslqK65Udauq
QZLKWi3KajsRps6SZp3BbzMRr49fPE+SrEwLuYLhs0rO61G2NWUxWvMIo7/B
+HMYfqSjqUeHh4lpZittDPyqt2vofnZ6/U6IR0LmpgRYdZGptYL/FfVgKAYq
03VZwQj442z6LfxTVvB0ef1ukJhaFtn/yRwmm4i6alRSNKuZqiYJQjpJ0rIw
qjCNsV9vJ+JFAjNVSk7ExVpVBJQRMIr4IAu5UCuYFlpsyupmUZXNGsAralUV
qhanxUIXSlW6WIhraW7Eu7JKVXKjttA6myRiJABfAMxC4OrxN/4rEA0iRgN+
s5gShnCNb1bSwFTUPnl0q4oGVvBIiIWul81sIm5klROSn30BwpNENvWyrBC8
RMDfvMlz3rY/wHjiBAehD2W1kIX+G/WaiPNypXHR3/+BPpq6Uqqe0DP+jcQH
+FzdSvFd2RgVvD/NVg1g8zuZ52orLkuZBR8vPs0BVeIq1apIlfgoqxv6muoa
aIy/8osyAwgv/nwsjk/+aN80RY2UaCFSK6lzRsqYMPG7gkEeNzxmU+mJWNb1
2kyePQu+JUVZrWCVtwqXc/nuLVKzfXx+9OKVfzx6bR+PDl+8tI8vXr52DV6+
fgndEl3M2/GS0Wgk5AywJdM6Sa6X2ghgkwapSmTKpJWeKSQ3wbwk6lIMkPHe
WsJBtjQDcfD5swXs55+fAHfKWsxlqnNdIwMKKVYKNjUTMDXxbkxLyN+S+Jno
D+ZIgeBxNmgKm6OqfItEHNAbjbRSyDvU6cA8EY3BRn59ICaAnWoJeMzEBmhS
FzBLSPFjXv9KZxlQMJAusE5VZk3KhHiBW97C9dhEAKhP2tReGMULGuK7CpgI
l048L4GKNnKLawP6LldudRkMAjhunJgj1DksGAULyNphYW+AZXA5sJR7t2Es
3jUVwnEnNNkWmEunQP1bEGi4OgQLEQckYHhnCJ5oau4kvmcBi+9IIsO64PEc
uFVcbQFVK3GAUH7/8WR6ffrEwYdEi/AlyXflRt3ylAxfUXoAzcjNaGkHQPGi
AjdaikJtdmgC4UB4hwJIKNvSO9OkS1F66QkT/0lWGuQA7a0p5/UGJCzsIe29
EUt5S79gU1WN6F+pdAmyxqwMjSfTpVa3CAMQlRnCCLDgSv3U6Ipfwh46OCIA
YYXYdlluYHg1WpfrJgcEZv1UZB5TL0OYBKBZ/pcV7Uouq4USBjaONSG3QhLd
wtYC98LezoB8ZzmTkl4UMue9Rd6y5MY49MjjnwQ2MkzZ1DQWLYqGqzUAizQs
1rKqdQrgVwIkf1ZWwB4hyhxWYyrcRvDJ21JnBBOoqQzVZAnLXsK+IWwqUF8S
Jjfr8gZWXObMLAgg9S2LRYltaAxcarNel1VNOhLpESWA0DWSm6RNC0keQL7V
qNqhb7D6/Vxt6QilDzLQUhXwgIoYCMCUDShYeEhBLXiuoAFvtWSO7bBOlydA
BBFRwc6qAok0QBvaGx53XnAoP4nplxl+6juFxa7wR+ZDicHbOwrMnJYfcJ+Y
tHJLJD3SnfghoDRtLDWxlG+1gkP/ULScQds8kwZQBhoRxs2dFLBiCRY1pL2m
vchBf5OQsqA4EJgZyLJAnQTKL7fwZbR0ZCXYWRbBIR7gGRDKgsiO6eb3tEMU
ChDg5PhMg6g7KUkXad5kLC1iltT1YxMvEZE2ZCgWDcswms6gcgXov61w0VUM
j4UBMAd4BYFsERGPAoubqW3JyNuDgTEqxrdlAWTQ2p4nSB2afjP2wKhEGxSo
fvDh+6trtH3xX3F+Qc+Xp3/8/uzy9ASfr76bvn/vHxLb4uq7i+/fn7RPbc+3
Fx8+nJ6fcGd4K6JXyeDD9McBU8Dg4uP12cX59P2AeS/cRxTwTAUa7WMQv0hd
0iTOyiHN9u3bj//659Gx+Pz5P6xJ9fPP9sdvjv77GH5sgMp4trIAEuKfyKKJ
XK8VSEO0MvIc7Iw1EFoO2kECM4PELwQqOcDm0/9BzPzvRHw1S9dHx9/YF7jg
6KXDWfSScLb7ZqczI7HnVc80HpvR+w6mY3inP0a/Hd6Dl1+9AYmgxOjoN2++
SZhG5mWelxuy0Ug4yiwjEnJ8lXaILGuJDJH4RbYPzwiWPtIz6CoYd6mM9kJZ
fZKrNTqT2o4dEMEgsGMMOAFn2BKJqGW9q7VK9Rx0CL5xc6PZjebvlSIDUrwc
HyHzPOp4qUnyAxujpLZZSIMN4UbMLVWBAygLM1cVKUAv30vUpW03bzlZBKZq
XbNi7whhhFruaAdcrgJzxk8GyitnK2mp1wD9KX7c6bXRQOFoDoQgepE3r8oV
WtpW1ABSmzX6Y3K1IwY3Sw3jg3IDiVgblc+HJKd3ZySbY86WxP7hSCoCjorW
thw60z8SB6zKQQ6sxCAeZIDIBLrJ4h2B+VdK9slyYY29qixrJ3Wnf353+ewM
/ieczky3YlHJ9XIsSM067Bvc6opV+I79wG4UODMetY+Ns8xJnjnrhskWGwXG
Js7UEIXAKHa+rFRoY9ftdnc2rQjJi4n3Aw+JoRdmKsZaMNPAMtHajsfMtGYN
8yuy0xBB9wY2Gd27tns5x2WhVQD6sQSceusiNMTZJIF+iAzYVvB+G1C39A1h
CgzvIbsPEk0hHBY1KuvEQP4Ai6NdCOaxsYaUsVBbKkK8g3UT9cmBPsmKsD2H
XiKipY4ysTTqS8Xe2bwTunE0eYcfTdhpfWl2xGrr0bBhjrwDA4I3QZAAynS0
jY9NbFoM2RzDkW+tr9UBq113uMRYaYOeYSfGEM8iqVAb2Dzig0/MyLriJsA7
JxenV6ji8LupdY32MTgPFbgORdf39xJCz0O77hfhDYx2xJG3SMNl4itQRcAG
dejLzxRoxX54Y5NvP6ICbLs1omlHozAozsJAdAJIqTIo4g7uj+UEyuwJC4Sr
dKlWUvwJ1oAfDm7tg13p9kmSvCPkAAiAHfZggAryRjmcui4dkUeit0DXYkFm
+cOhe0F2eo72F1HHwPVCtAKKAN2EAXBVQCYARrbi8tIbAyFd0MayWipKhypr
szheJo7gNihDSGZutGFpYt1P3Ngtk1XEKOMBq2LDYgUbeDvIYsfJf3C/836+
cPqXl0MzxbNY5ZGVlpHTclEggDD8infRx9NFJ9Z+gGwQbuYPSFqmAWsWYwk7
DgSITn1LrprFZgzJ0FoeFKsJeEVhcJT6Z1nrWtmdGPbpWdrAhwUGvVbjkKCn
P+NQvJ8rY6SzUPDYQJ3aXSDDRb55AByYUeoWXXUbbGBw9vhwQ/Icg9AVfcFV
g1XU9VpRxtdORBcKyROR5JYd0jKFZGJXnKM4sdzaaTYUSycayS/EeF64CXaI
ztgUQAK6DEY2bdx1AcDvSOAebGKgA3C90mxVtT4DqeVFXs5kThkVtDbccBgf
APU521JUE2MS/eTa7vMkSYR4StvZCdBdnL//cScyweJ9vmNHeINK5hxupKjw
vqHPT/90eunHPlBgqqS8qcM+BQQupJxhDH0bqd+5E65u9YiMHkO4C+umbHLU
NgAjyLGamY7gRWnkXAiMF8zUvCSjNJA5T/Ytavr+h+mPV35V5LrssvseRrf0
jmG/DZA4B1IsFu9ibLJzZGBGs5znUGEkzslmMKEzwjzQQ7wdtjDsXOkCfRMm
fKA5b4/LdMcz7fM0xmIKPBF5bZEqChUAmH1O9rshHQTWvP4CjQjsNRWcXWSO
mI1CUxOIoGIjAIbOJRghpoUf40ZAeBud3jiJOUDiHHDLoQWvj2hbFrPWQi2r
WlzMxdSKsa04MKUMFQxF34JX3gPDcCapXFakVxdTVmtO/cn1OtcBTVkSbJOY
PbvKUgcQ7ySZIxLie/wRgWINk8DwcqKMomUw2ocmrzWIsL5+O/KPQ2ytrWf2
GqdXitH7+TMDj5tt9/bnn2lhaS4JnaUbVhewMJB7YAfj5luLmIIBEWxGrzT0
Ba/2IYA8wgCG31QOXtgQCgYbArsFyBtjlkxzQ79lFoWBjkWjCc0k2jyJfFbB
asHuwyykqkYY2QZOtirbUuTlyfR6yqu5/vN113S0ymSuKxBnM+W0/ofz6YdT
HsjqMgosBC0uwxZObMKeAcQ2e+haFmhHgiavNfwbAJcBhXJYutWWABFGBkwr
a9lpYnxEkA93Ylu/jrv8YvxifERSIM8thh3JI+dzZPfa4wjHZVy4Vph434qf
wC8mm9cbBbABGALQKK5+xwIBaKbALn5TgSN1kSGEfdYGxqPbTAeqHN4cN5qD
AGSWJc+sTffsDiVcypR43sXSxwJZiOyyz58XqlCVzL9VS3kLzmjlOckS+KkN
BybJP+AvAXYZo1wb/+fb6fVfxCFR3IEYfLXC+b4ZwFPFT7ZWAH6rOWB1+Y2A
J7Bs4V/YevCe4YHyFs0Kuj3ZO3JhjsY2JjlOy5Ufd1mampVg7+ej4+PDQ/Ea
/nt+fPT6Ofz74tXh4X0T/Q6ckHBk+H3/gIQYlOjnPptgxEFhQkk+5TAK6Cgn
/4Aw0DyaUSyWaX2jnF/i84DUDYgtA6t5gTQDVrjRWZuM6LEbg6TGHaLlRm2/
ZtdzLUE2PEyYDFtq415G4RTWpwPHD+TlWpKUPWPRVwQ4QRB0MWo1KDlAWYbq
1uNFsuqv2NJykZZha7h2OziecErOBfwibojMJQzo8RI8drwD+0DI2+x/7Clb
p67wUFp3xI8/5G1jkxNagI5k3cmlDV6JYyfyfUbWalLw5g5lFKtuGAVcfhD4
OGhAiZFOYBQPu3ahDyKBrKW6g4Ce0Dcl1xDpKHUpdKfDQ7P2IQqUiDUAzslK
H0xYOQsCNYuxxEdLakFqW68tgFsrukgCegXN0w3w5aDd+a7k5/3zq8edRXFA
Q5VduiDvoOacTY3BbK4A8NkuzjxUFSboC0ppev4HkmROC1LhMZk+WEpfd2NI
e9cI8hG2TVKYBBD5q+pTTOhMix5ac/EW6w5a1AJN7ICJJAPezb02l17fHrP3
sr59FVlgtMP4mUNJ+Phq0BWCLiVHIYutBwgxd/bR8e2BMk8cPj0BtKRm23eX
0AoP3pA9zZhiSJqgMGGaW5JNauWdjVJF8RInUTARqHgpQWwlCylpGAsALBnR
5GfVLYKw9HIHP96+CMThLn3xAL4bhYk9/3gRhJ10BjjF3WLYh/8+EjymlGIv
rK++BNZXd8AK3Hv6CRjdcByxFFe2oAboxgV9XzkQsb4wBPH5+IjXw8nmxrhw
mIWGVxyau1NxCRy0AnRk/BF9GwJxaknhWn2qoVE0As+OJY3h7Md3s6cXeJi+
CPUcUu5QzJo+Dg5JzBFnzM33KYALLBToOITd1AHSefCpvxTjty4E1QleYHCF
eKTURaqxQodzlntidN3YH2XHsV5uIassx/XBxJul8rzELdpADs4VjTK0CsKm
Mdco4mzkygVc2yEeYygIbWKsOsVCKgxDFaaxwRBrAzrGwHCQT0QtkOZ38qSc
/yPicOIhmC628K2BX5h+4xh29WtMLI7JRbFpUG8co0T4Gqzi8eEY6RyZ7msw
kY8m2ew3k8kRWsl3DWyzqw8Z+/nrzujHx3YCa4aLD4z9TvJRfH60Gy5ggQE8
J9EMC0LfPtYtZ+WtcoYJBuMqnQEZka0Rxk7E2TwKnVcdbQFEUbbvUkvGwHuF
3VoCgcsWoKmpu02dqEJngQJY6AIqnwi8f7Ihkbh1ldoYROpin+VK17XLz/21
Max9AoelqxNsh3DZPpBqAy4Yk3XGtmN9zu1ykGBsie6rptA/NWp0/s2Y4ouW
SPzfofh4fSkCN2/cenF7+u54pq0/2nqqD/NMHeXug/IeJhFfwiXel3xLuT4M
D15swPbDohNxkJZlJzzoi4M5N9gWDLUNvWyMzHNqDoTuB0fL1RY5eF9m3oDq
WVmpOdxjqMYRfnNv0aApc8URthRPYwQBjN00c1t4Gs/pC1q892W8ym/XR8kR
t8DeRELX9OnmgWEx50FlxV69EeVwHps4WI6JG+vq7xlgJ9XqSn6K/lMBNGm8
WZ1Jh74al2rskC3JvM5YcenqnioFzlasc1kUNnXA9AU4bknGF45T1QcXtzOA
3lEhWv49ey/tWxDG+zyaJLkqW1+rz0MP84/9VRPOQsnIuByR7W6jkv+2iGIk
Xh2IgfT0FRokdsn3MMrH67tB/TjAG/uQ+6qpY9vFFTqpPizsCWQGNoI14ky4
ev/Z5XxhrzhgTlHNmnITv3KZ4LAvpooM5ZBG1UdA4WCFp03dl9ewsVBfJEPV
BSgwTFvrFg3fF2S1FQuhCHUBVkIJ2JdU49YTbeVascAouVSrEjbC+4qdbGCF
n/s0J9uTtatn6ZHEDnI3BB6nW7B8pepFlwLak22nKq62CGI0NaZMNXW7ou+X
QLM1wG0rRbEmNYiE8RhobrpEQyrBXsKikMbWFXKTQFB3FmCdo5kbBgMs3JgT
tdLYkT3zB6loTnFgqMgW3HVrtXvo0J8cxOAsBthsVYfDkEtx2HrZcCuAfLql
JVbSojagXv5EBOUyrd0fZgBCXyJSAK46h48mOfGPJ3Z8/ef9moeSZd1DD662
j4q9lQkiB/cXZPWlcdsiqjZvuyIL1YLmVmIt1b61sIeJ+AXJZlQQG5+BkhuL
aTsK6eGlNFTkwlD5b0hdjd8FZ9aHRz9cXS3J3Tb6OpPpzUZSYmu1hr20O9W6
/feVFvqykxUe0YId336JwRD7j/fbCLvbPMXkASwJ8MJyx5EtIIkLgVrBxGKQ
T1G402zWOPLkHFfvhMeCbCVPdIToIbIlPu3UWylE4W7ybPtOo7S2HZ6CzDWC
TVwNJN5QuvetNXCkP30RHdtpC1LcWT7jeqZRz6jS6SHbD5Jlej7tzA82Dr4F
g4Y+kmAH78HY8hKZcUK1LeNxsXVrwldqgXGA7SRJLu0jKdSJ2IEoqrG9VHPg
a7CtJzGfJsnfXbstPADvfCKv5O/iJKhK7vn7Owl/4KvgjZ+Ef8PQVA2205P0
XaeMLvDJaWg+0yiuK2BCeBMLFxzauXo7QHXLJ/zyXIN7h7auXQfq0JINxwzn
vmfozxM6sP/1LvnYEXH5bl8HQCTvtMozqqQHWmAp7Qs+W1MgPPjxQOLEc7wo
35BM22Tuo06Vtg8CXS87x1Fk4a3aSFzhyR0nZoIynf1KRN5Rt+kTWLhuFwwJ
TH4nADFigcO2hrWX6C70QFahNdfCiEGYdHLv8Ry5PdRJ3Zta57YY1KuPtlCD
tdRuyzjY0oI2jsNL9+UTA2DdonS3ENf7vRbrQSIU5gFhnHcSvdCdKy5AqrTn
zqNNc+ZYJ6/qYjMw89+ASShAPu4RD4eEId/APxzYqMcR5cnFq07iXDx5wMiA
S/e9Dfjs6bavYGB8T8UAZvz35/Zd7GcfrHHspzv1F4V+vnSq5w+Z6nl3quc4
1Y1cZjfLV3Mbx9qZsSfetpR/XZq/LuXDuiBj4YLu7MUL6sXc4IGd+xCPd13s
QcbLww465nNA/vHrKPIWgBEe8QlFpDZBTB9z1NbA8qV14RjSHvCwzooT5S6y
HIhU18tyXrS9+Ed8g9y2Q2d7SNszYe/fkeine0BG/9TAjmJn7rvbxkSa7ABO
bacEjWOOfY3gTwQsk+xwwO5Yz/c1isd6vrv5SES/dPML68D+os0nFfVv2PyH
7H489927f09bKxDiF3079vJwX7Nozyzj+qQPG4Hswj+7BgdwsazBzHl6/u1E
XJdhTMSaBmAjiVO6kAidLc61rZtZbkNS46fhkT53TJUpYmBPB919YYGPYh05
3zAompGmz83DCp+eMy25vkEvCMvkL8BL0qHPziWKuPIrDtycxSVhllA1oAOj
uanyRfJvsEAXI2Gh10Ke9UyBa8oOqiR3JMp4xiBbX3vmIhbWInwmO1ErGJ5H
AHPSoPPHI5CNGbvoPlBBlbw06NrG0c6sFzdXClxdwEQNJraYaUYRDrRqwKix
i95IMjtnqt7ggvhOhPBSGTSl6O0gvB9ggFYeOF1HVIfZqY2K7p7wn9RPXKSH
cBmGhVDl8U19nZfcmsQ0R+26oe1Ffbt3yHjTtm8rdR1Fnn+70xt31Bun66Za
49FJWZV4tRNdXUS+pztWYANbbH4ahfemuLPFnbikxi9Fyma/xmgwrGZaiOnH
MwLoKeYQn7oaucgDDPAkYfvoshiXYuHFWpK3Odcbneds+cJGzYCBOJ+yAPnq
4wguc9ntz/excJRyQ+mPncSHTUXsvwyC7jRorxiDFQYG+kbi3/b+6yLsCkpj
9Cz37d2lPhY3TOU2wO1YU2UumsS6Z7AP0kFwPklzmAzoHWPASHR5jmh34oWL
Gly0YRCPQ6XzXY4M7+YwO6LDeGGBiMEipaBMCdxJDnvgOeX5FjHxDOVQ97A1
lcFiF7rxYOtOMCDJ7gqIh131dFZkColjRVcd2Xp8dPDjPbYox6tyWElgfHIp
qzA/2RuVI9hwPBeL81FmqtTXkj1oWza0E0QOmQG2LM1hPJZfC7n2dzIU2agu
R/CPACzw6Ws+Hz/bdob7L3+uzt7xR5Kc3fh2FFBFVUm3GwQHRHzO1RWumD0n
CYdfeDlXe3zA3Ui0koWme2xs/56LgdB7vji5ECMKlZGPzR4unhzIg9MHZEvR
pVaGBPhQqDodj8dvUB/+659hbOwRvrDZSB5+Ik5KrLv2VyS1t0G5GOn19fvu
+VPOQfCxrQOwyYagfocC/kEj5QnMLc5Ipt2Aq46/3pJQslLYxpWZKirZKcSm
E3xclJEryecc0TTBIEGzbi1ImDVJGHbMw0R3PHGFk4ki+ni0aAgmGWHniXhD
qUHGGYLiMxVe2WSlu8arfTdTqbSFa+1dVS4i3BrBtD5/nVpdlrm7B4iSV3q1
UpmWNRUBYHlbikfnboILqDztWvLkEptp92i9xZO1JzJYLAfz8UqkIFK0ac/l
4JET7urOudggfZipKcTTSpGGNU9dNuMRVkpN3743TFgx0fjMugzuf5qX9t4h
kpcYRx+x8BuyPBx54UchHZtINfUWEAgTxeLpDdoJrI5zaOnuHUthczEA3xjl
Mpr+yPWQoswGMyMivOmC629i4Uen4EAaBNE6OrGPZvTYZuS7ua4omqSj8r2n
Y6xLxHsmOWTm9FZn95xVwuKhKZYqX8+bnDDXVi809ko7IJWZLjy8fPeWv91i
7KPvnTqnkLZ5KJRS4cVs2J/6NAVyP1U0kZwf+hoLuioPvpF04VPbfBCKPlg7
lmQRuCHtjTSUXcbb6PA4co0XkR6YJ7bqDit0XGw5Sabu0ANV9XX1KhtrfRUY
tLFEhiu+H4gWWHmbA3/S5UpEtUfHz46OQKC6Gzj8uVMX+sON+q31bhkWtsxA
Q6l2LsMH7OZbO1mKNho8v+GV4Ym6dmVRUoQSuP2eBUW9SQsi54Z1H8u2qCzT
wE5NexiUyUsza+BtOkV77BsPs4JkuiEOxsgzV/a3B9F3z5YiqfNsGxUetfYl
s3xAdiUzhbIYdsIfUOCzMrZQrhSUd6fSBF5tVPrNFw+sqWr7TTilq/6QhAN7
aJDv7HwjqOTHKyVEsm1AugM3GGsQYeyhQ1kwomVMvhekrCLVEqXj6F4Cf/cQ
3/coXQi7vfDl27PzE+CeAYMwYnE94usoB0nye1o0EQyXv+KlYoA/ssHaQ9Y7
whdasn1Q022XVe30gitXC/QBmVYdfYFGy+OMvX3UbO6ACk/JlNC5/VHV1oYL
jueKHwgB5GvOFHM2pe4IO1lsMFgM44YggQWmuSs5wpQjn8ynssr24G54GaY7
NF56EoluAmSxM8e0NV3vAwbgOqeSDZtdsJP16rpdRLNGDxSxO2fO6Xub+aa6
o7QeuGpNa1M9wjLylsPPvLgQqa744svgcieYrUJnFW1Cba/GMGDstGJpjzLl
uhoT1kt7dmsPathrjGSIeHwkbjDgqAMZ89GXlfSn1XiR1lHXZiLi8PywjR8m
vhLzfbn4hfEkQNzhIZZDWR6mu58peJXeFOUmV9liRVfLfn7UviGuND8nnyd8
elhlXw/mYE0oTBqSgSzbtuPk/wEEv6ofK1wAAA==

-->

</rfc>
