<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-schinazi-httpbis-link-local-uri-bcp-03" category="bcp" consensus="true" submissionType="IETF" obsoletes="6874" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title abbrev="Link-Local URI Connectivity">Best Practices for Link-Local Connectivity in URI-Based Protocols</title>
    <seriesInfo name="Internet-Draft" value="draft-schinazi-httpbis-link-local-uri-bcp-03"/>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>
          <city>Mountain View</city>
          <region>CA</region>
          <code>94043</code>
          <country>United States of America</country>
        </postal>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="February" day="22"/>
    <area>Web and Internet Transport</area>
    <workgroup>HTTP</workgroup>
    <keyword>IPv6 deployment</keyword>
    <keyword>URI</keyword>
    <keyword>URL</keyword>
    <keyword>mDNS</keyword>
    <abstract>
      <?line 67?>

<t>Link-local IP connectivity allows hosts on the same network to communicate with
each other without the need for centralized IP addressing infrastructure. The
IP prefixes 169.254.0.0/16 and fe80::/10 were reserved for this purpose.
However, both IP versions have limitations that make link-local addresses
unideal for usage with URI-based protocols. This document provides guidance for
how best to enable link-local connectivity in such protocols. This document
also obsoletes RFC 6874, a previous attempt at solving this issue.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://DavidSchinazi.github.io/draft-schinazi-httpbis-link-local-uri-bcp/draft-schinazi-httpbis-link-local-uri-bcp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-schinazi-httpbis-link-local-uri-bcp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        HTTP Working Group mailing list (<eref target="mailto:ietf-http-wg@w3.org"/>),
        which is archived at <eref target="https://lists.w3.org/Archives/Public/ietf-http-wg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/DavidSchinazi/draft-schinazi-httpbis-link-local-uri-bcp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 78?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>To simplify configuration of new hardware, manufacturers often print
configuration URLs on labels to allow the user to reach the configuration page
by copying the URL into their browser. This is often simplified further by
encoding the URL in a QR code and asking the user to scan it with a smartphone.</t>
      <t>While the majority of IP networking uses globally routable addresses, those
rely on addressing infrastructure that isn't always available. For example, two
hosts connected via a direct peer-to-peer link may not have access to an entity
assigning IP addresses through DHCP or IPv6 router advertisements. Connectivity
is often desirable in such scenarios, and can be accomplished using link-local
addresses. This feature was added in IPv6 <xref target="RFC4007"/> and retroactively
backported to IPv4 <xref target="RFC3927"/>. However, these addresses have limitations that
make them unsuitable for use in URLs, as described in <xref target="limitations"/>.</t>
      <t>This document obsoletes <xref target="RFC6874"/>, a previous attempt at solving this
problem that failed, as described in <xref target="attempt-6874"/>. This document provides
recommendations that solve this problem in <xref target="recommendations"/>.</t>
      <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?>

</section>
    </section>
    <section anchor="limitations">
      <name>Limitations</name>
      <t>Since there is clear value in being able to configure new devices in the
absence of IP addressing infrastructure, there is interest in supporting
link-local connectivity via URLs. However, link-local addresses have
limitations in this regard.</t>
      <section anchor="limitations-of-link-local-ipv4-addresses">
        <name>Limitations of Link-Local IPv4 Addresses</name>
        <t>In order to simplify implementations (and as recommended in <xref target="RFC3927"/>), most
implementations disable IPv4 link-local addresses any time globally routeable
addresses are available. This can lead to instability of link-local addresses.
Additionally, these addresses are generated randomly with fewer than 16 bits of
entropy, making conflicts statistically likely.</t>
        <t>Both of these limitations make it impossible for a device to print a
configuration URL on its packaging that uses a static IPv4 link-local address.</t>
      </section>
      <section anchor="limitations-of-link-local-ipv6-addresses">
        <name>Limitations of Link-Local IPv6 Addresses</name>
        <t>In IPv6, link-local addresses are generated randomly with 64 bits of entropy,
making conflicts statistically unlikely. Additionally, in IPv6 the use of
multiple addresses per interface is encouraged. This allows link-local
addresses to remain even when globally routable addresses change.</t>
        <t>However, IPv6 introduced the concept of a scope zone (<xref section="5" sectionFormat="of" target="RFC4007"/>)
and requires that every host include a zone identifier when sending to any IPv6
link-local address. While <xref target="RFC4007"/> defined a "default" zone, that is not
widely supported: most operating systems still require the scope identifier
when making a socket operation on IPv6 link-local addresses. This means that
IPv6 link-local addresses have to be accompanied by a zone identifier from the
moment that the address enters the process.</t>
        <t>Unfortunately, IPv6 address support was added to URLs <xref target="RFC2732"/> prior to the
creation of IPv6 scoped addresses, leaving the URL format for IPv6 addresses
incapable of representing zone identifiers. This effectively prevented the use
of link-local IPv6 addresses in URLs.</t>
      </section>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t>Before diving into potential solutions to these limitations, readers will
benefit from the following relevant historical context.</t>
      <section anchor="uris-urls-and-a-tale-of-two-specifications">
        <name>URIs, URLs, and A Tale of Two Specifications</name>
        <t>URIs and URLs were created early in the development of the World-Wide Web and
were brought to the IETF in 1994 (see <xref target="RFC1630"/> and <xref target="RFC1738"/>). Over the
years, the IETF maintained and evolved these specifications. In particular,
support for IPv6 addresses was added in 1999 (see <xref target="RFC2732"/>). The IETF
published an updated URI specification in 2005 (<xref target="RFC3986"/>).</t>
        <t>In 2004, a group of browser vendors created the WHATWG, an effort to evolve
Web-related specifications outside of the W3C or IETF. The WHATWG eventually
forked the URL specification from IETF by creating the WHATWG URL Living
Standard (<xref target="URL-LS"/>). From that point onwards, even though development of URIs
and URLs continued at the IETF, this work often didn't lead to corresponding
implementation changes in Web browsers.</t>
        <t>Almost two decades later, the situation hasn't changed. The IETF still
maintains URL/URI specifications that are authoritative in all contexts except
the Web, while the WHATWG maintains a URL specification that is authoritative
for Web browsers. Note that the use of the word "authoritative" here is
somewhat of a misnomer: neither of these standards bodies have any actual
authority to enforce that their specifications be followed, and instead rely on
implementers choosing to follow the specification.</t>
      </section>
      <section anchor="attempt-6874">
        <name>IPv6 Link-Local Addresses in URLs</name>
        <t>As the Web gained in popularity, an increasing number of networked devices such
as routers or printers started to incorporate Web servers as their primary
means of configuration. Many of these devices function properly without
centralized IP addressing infrastructure, so there was interest in
communicating with them using IPv6 link-local addresses.</t>
        <t>In 2004 and 2005, an effort was started to allow representing zone identifiers
in URIs <xref target="URI-ZONE-EARLY"/>. That proposal leveraged
the "IPvFuture" feature of the URI specification (see <xref section="3.2.2" sectionFormat="of" target="RFC3986"/>), and example of the syntax is "[v1.fe80::a+en1]". That document was
never published but its format ended up being used by CUPS in 2005
(<xref target="CUPS"/>).</t>
        <t>Over the course of 2012 and 2013, a revival of this effort led to the creation
and publication of <xref target="RFC6874"/>, an update to the IETF URL specification that
defines how to represent IP zone identifiers in URLs. This version used the
IPv6address syntax in URIs, an example of it being "[fe80::a%25en1]".</t>
        <t>The majority of Web browsers did not implement either of these changes. The
main concern from browsers what that such a change would require modifying many
different components of the browser, with the associated security risks and
maintenance costs. Almost all browsers came to the conclusion that such a
change was not worth the effort. Further examples of what made <xref target="RFC6874"/>
complex to implement are listed in <xref target="handling"/>. After browsers decided not to
implement it, the WHAT URL Living Standard was updated to mark the zone
identifier as "intentionally omitted" (see <xref target="URL-ZONE-TRACKER1"/>). The WHATWG
subsequently rejected a request to add zone identifiers to their URL
specification (see <xref target="URL-ZONE-TRACKER2"/>).</t>
      </section>
      <section anchor="further-attempts">
        <name>Further Attempts</name>
        <t>After it was clear that most browser were not going to implement <xref target="RFC6874"/>,
another attempt was made to modify the URI RFC:
<xref target="DRAFT-6874BIS"/>. While this attempted to address
some of the difficulties in implementing <xref target="RFC6874"/>, it did not address the
fact that browsers were not willing to start such a complex implementation
effort given the small usage it was expected to receive. That document failed
to achieve consensus and was not published.</t>
        <t>Later, an attempt was made to address the generic question of how users can
input IPv6 link-local addresses into software interfaces
<xref target="DRAFT-ZONE-UI"/>. In this model, the zone
identifier is considered independently of the IPv6 address itself. In the case
of Web browsers, the zone identifier would not be considered part of a URI.
However, this does not in itself resolve all the difficulties in considering
the zone identifier as part of the Web security model, as described in the next
section.</t>
      </section>
    </section>
    <section anchor="handling">
      <name>Handling IPv6 Link-Local Addresses in Web Browsers</name>
      <t>Browsers operate differently from simple command-line tools such as ping, ssh
or netcat. Those tools generally take a destination as input from the
command-line, resolve that destination string into an IP address (or list of
addresses) via a function such as getaddrinfo (<xref target="RFC3493"/>), and then
immediately perform socket operations using that address. Supporting zone
identifiers in these scenarios is pretty simple because the result of
resolution is only used in socket operations.</t>
      <t>One might assume that Web browsers operate similarly, but that would be
incorrect. Browsers follow the Web security model, which is based around the
concept of an Origin (<xref target="RFC6454"/>). The origin is propagated throughout the
browser software: it is involved in whether to use a resource in the HTTP cache
(<xref target="RFC9111"/>), it is checked when deciding to allow sharing information
(<xref target="CORS"/>), it is used to save security policies (<xref target="RFC6797"/>), and in many
other cases beyond making socket operations. Additionally, all the portions of
the origin are sent to the server in HTTP (<xref target="RFC9110"/>).</t>
      <t>In contrast, the zone identifier is only valid and meaningful in a given node.
As specified in <xref target="RFC4007"/>, the zone identifier from a given node cannot be
used by other node and it cannot be sent over the wire. This makes it
fundamentally incompatible with the concept of Origins.</t>
      <t>The solution in <xref target="RFC6874"/> requires the browser to treat the zone identifier
as part of the origin in some contexts (such as when determining uniqueness of
a name), but not in others (such as when sending the Host header on the wire).
This significantly increases implementation complexity and security risks.</t>
      <t>Conversely, the proposal in <xref target="DRAFT-6874BIS"/> sends the zone identifier over
the wire, and suggests that the recipient not make use of it. This creates new
implementation complexity, now on the HTTP server. It also doesn't address the
multitude of implementation changes required to incorporate the changes in URL
parsing.</t>
      <t>In all cases, implementation matters are further complicated by the fact that
the percent character ("%") is used in URLs for percent-encoding. While each
proposal offered a different resolution to this encoding issues, all of them
have significant downsides ranging from poor usability to ambiguous inputs.</t>
      <t>Regardless of which specific mechanism is used to encode zone identifiers in
URIs, the complexity of Web browsers and widespread use of Origins make it
impossible to implement zone identifiers without large engineering efforts.</t>
      <t>Separately, the proposal in <xref target="DRAFT-ZONE-UI"/> would require querying the user
from many distinct browser components to determine the correct zone identifier
to use. That is particularly difficult to implement in multi-process browser
architectures. It would also confuse the user when they receive a popup for a
link-local address that appeared in HTML.</t>
    </section>
    <section anchor="goals">
      <name>Goal Definition</name>
      <t>However, the top-level goal of all these efforts is to allow link-local
communication via URLs. That does not require encoding IPv6 link-local
addresses in URIs. All that is is needed is for the URI to contain information
that resolves to the correct link-local address.</t>
      <t>The deployment of IPv6 happened in part because it did not require users be
aware of IPv6 addresses, nor remember them, nor type them into browser address
bars. It happened transparently to the user, thanks to the DNS: once it was
possible to query IPv6 addresses from the DNS (see <xref target="RFC3596"/>), users could
browse the Web over IPv6 without having to ever see an IPv6 address. Surfacing
IPv6 link-local addresses to users is not required.</t>
    </section>
    <section anchor="recommendations">
      <name>Recommendations for Link-Local Connectivity</name>
      <t>The concept of address resolution also applies to local connectivity in the
absence of centralized IP addressing infrastructure, because DNS hostnames can
resolve to link-local addresses. In the absence of centralized DNS
infrastructure, mDNS (see <xref target="RFC6762"/>) can be used to resolve link-local
addresses from instance names.</t>
      <t>Devices that are reachable over IP link-local connectivity and that host
servers of URI-based protocols <bcp14>SHOULD</bcp14> create an mDNS local instance name for
themselves and <bcp14>SHOULD</bcp14> respond to mDNS queries for that instance name. Device
manufacturers <bcp14>SHOULD</bcp14> pick instance names to maximize the probability of the
name being unique. For example, this can be accomplished by including the
brand, model and serial number of the device in the name. Another option is to
use a name derived from the device's MAC address.</t>
      <t>If the instance name is defined to be unique (for example by including a unique
serial number), it can then be encoded in an URL that can be printed on the
device packaging, either as text or in the form of a QR code.</t>
      <t>If the name is not unique, devices can rely on mDNS conflict resolution
(<xref section="9" sectionFormat="of" target="RFC6762"/>) to ensure unique names, and then browse for the
relevant service (<xref section="4" sectionFormat="of" target="RFC6763"/>). However, this has two
limitations. First, Web browsers don't currently perform this browsing. Second,
conflict resolution requires the conflicting devices to be in the same
multicast domain, which isn't guaranteed. For example, the browser could be
able to discover two devices both named "example.local" where one is on Wi-Fi
and the other on Ethernet, but those two devices won't detect the name conflict
if the Wi-Fi and Ethernet networks are not bridged.</t>
      <t>Following these recommendations solves the goals described in <xref target="goals"/> without
requiring any changes in Web browser software.</t>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>DNS Service Discovery relies on either link-local multicast (in the case of
mDNS) or on service registration infrastructure (such as
<xref target="DNSSD-SRP"/>). If a network blocks link-local multicast
and does not offer service registration infrastructure as an alternative, then
DNS service discovery cannot function. Because of this, the recommendations in
this document won't work on such networks.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Many aspects of the Web security model rely on using a name as a root of
security. This has the following consequences:</t>
      <ul spacing="normal">
        <li>
          <t>name unicity matters, as conflicts can lead the two devices sharing a name to
incorrectly share a security boundary.</t>
        </li>
        <li>
          <t>HTTPS/WebPKI security currently relies on globally-registered names, and is
therefore not available for link-local connectivity. Such link-local
communication is therefore inherently not authenticated. Future work might
define mechanisms to trust local anchors, which would enable such security.</t>
        </li>
      </ul>
      <t>Fundamentally, mDNS has similar security properties as the underlying
link-local address it resolves to.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="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="RFC6762">
          <front>
            <title>Multicast DNS</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
              <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
              <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6762"/>
          <seriesInfo name="DOI" value="10.17487/RFC6762"/>
        </reference>
        <reference anchor="RFC6763">
          <front>
            <title>DNS-Based Service Discovery</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6763"/>
          <seriesInfo name="DOI" value="10.17487/RFC6763"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="URL-LS" target="https://url.spec.whatwg.org/">
          <front>
            <title>URL-LS</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="WHATWG" value="Living Standard"/>
        </reference>
        <reference anchor="CORS" target="https://fetch.spec.whatwg.org/#http-cors-protocol">
          <front>
            <title>CORS protocol</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="WHATWG" value="Living Standard"/>
        </reference>
        <reference anchor="URL-ZONE-TRACKER1" target="https://www.w3.org/Bugs/Public/show_bug.cgi?id=27234">
          <front>
            <title>Support IPv6 link-local addresses?</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="URL-ZONE-TRACKER2" target="https://github.com/whatwg/url/issues/392">
          <front>
            <title>Support IPv6 zone identifiers</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC4007">
          <front>
            <title>IPv6 Scoped Address Architecture</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="B. Zill" initials="B." surname="Zill"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document specifies the architectural characteristics, expected behavior, textual representation, and usage of IPv6 addresses of different scopes. According to a decision in the IPv6 working group, this document intentionally avoids the syntax and usage of unicast site-local addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4007"/>
          <seriesInfo name="DOI" value="10.17487/RFC4007"/>
        </reference>
        <reference anchor="RFC3927">
          <front>
            <title>Dynamic Configuration of IPv4 Link-Local Addresses</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="E. Guttman" initials="E." surname="Guttman"/>
            <date month="May" year="2005"/>
            <abstract>
              <t>To participate in wide-area IP networking, a host needs to be configured with IP addresses for its interfaces, either manually by the user or automatically from a source on the network such as a Dynamic Host Configuration Protocol (DHCP) server. Unfortunately, such address configuration information may not always be available. It is therefore beneficial for a host to be able to depend on a useful subset of IP networking functions even when no address configuration is available. This document describes how a host may automatically configure an interface with an IPv4 address within the 169.254/16 prefix that is valid for communication with other devices connected to the same physical (or logical) link.</t>
              <t>IPv4 Link-Local addresses are not suitable for communication with devices not directly connected to the same physical (or logical) link, and are only used where stable, routable addresses are not available (such as on ad hoc or isolated networks). This document does not recommend that IPv4 Link-Local addresses and routable addresses be configured simultaneously on the same interface. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3927"/>
          <seriesInfo name="DOI" value="10.17487/RFC3927"/>
        </reference>
        <reference anchor="RFC6874">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined as in the IPv6 Scoped Address Architecture (RFC 4007), can be represented in a literal IPv6 address and in a Uniform Resource Identifier that includes such a literal address. It updates the URI Generic Syntax specification (RFC 3986) accordingly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6874"/>
          <seriesInfo name="DOI" value="10.17487/RFC6874"/>
        </reference>
        <reference anchor="RFC2732">
          <front>
            <title>Format for Literal IPv6 Addresses in URL's</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="December" year="1999"/>
            <abstract>
              <t>This document defines the format for literal IPv6 Addresses in URL's for implementation in World Wide Web browsers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2732"/>
          <seriesInfo name="DOI" value="10.17487/RFC2732"/>
        </reference>
        <reference anchor="RFC1630">
          <front>
            <title>Universal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <date month="June" year="1994"/>
            <abstract>
              <t>This document defines the syntax used by the World-Wide Web initiative to encode the names and addresses of objects on the Internet. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1630"/>
          <seriesInfo name="DOI" value="10.17487/RFC1630"/>
        </reference>
        <reference anchor="RFC1738">
          <front>
            <title>Uniform Resource Locators (URL)</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="M. McCahill" initials="M." surname="McCahill"/>
            <date month="December" year="1994"/>
            <abstract>
              <t>This document specifies a Uniform Resource Locator (URL), the syntax and semantics of formalized information for location and access of resources via the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1738"/>
          <seriesInfo name="DOI" value="10.17487/RFC1738"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="URI-ZONE-EARLY">
          <front>
            <title>Formats for IPv6 Scope Zone Identifiers in Literal Address Formats</title>
            <author fullname="Bill Fenner (ˢˣˠ)" initials="B." surname="Fenner">
         </author>
            <author fullname="Martin J. Dürst" initials="M. J." surname="Dürst">
         </author>
            <date day="24" month="October" year="2005"/>
            <abstract>
              <t>This document specifies the format to be used when specifying a zone
   identifier with a literal IPv6 address in URIs and IRIs, and in SMTP
   and Internet Mail Messages.  While this combination is expected to be
   needed rarely, it is useful to specify the exact syntax.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fenner-literal-zone-02"/>
        </reference>
        <reference anchor="CUPS">
          <front>
            <title>An IPvFuture Syntax for IPv6 Link-Local Addresses</title>
            <author fullname="Michael Sweet" initials="M." surname="Sweet">
              <organization>Apple Inc.</organization>
            </author>
            <date day="22" month="November" year="2013"/>
            <abstract>
              <t>   This document describes how the zone identifier of an IPv6 scoped
   address, defined as &lt;zone_id&gt; in the IPv6 Scoped Address Architecture
   (RFC 4007), can be represented in a literal IPv6 address and in a
   Uniform Resource Identifier that includes such a literal address.  It
   documents a long-standing usage of the IPvFuture extension point
   provided in the Uniform Resource Identifier (URI) syntax
   specification [RFC3986].

   [ Editor's note: This draft documents the IPvFuture format originally
   defined in [LITERAL-ZONE] and used by CUPS since 2005.  A separate,
   incompatible format was defined and published in RFC 6874. ]

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sweet-uri-zoneid-01"/>
        </reference>
        <reference anchor="DRAFT-6874BIS">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="Brian E. Carpenter" initials="B. E." surname="Carpenter">
         </author>
            <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Bob Hinden" initials="R. M." surname="Hinden">
              <organization>Check Point Software</organization>
            </author>
            <date day="2" month="July" year="2023"/>
            <abstract>
              <t>   This document describes how the zone identifier of an IPv6 scoped
   address, defined as &lt;zone_id&gt; in the IPv6 Scoped Address Architecture
   (RFC 4007), can be represented in a literal IPv6 address and in a
   Uniform Resource Identifier that includes such a literal address.  It
   updates the URI Generic Syntax and Internationalized Resource
   Identifier specifications (RFC 3986, RFC 3987) accordingly, and
   obsoletes RFC 6874.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-6man-rfc6874bis-09"/>
        </reference>
        <reference anchor="DRAFT-ZONE-UI">
          <front>
            <title>Entering IPv6 Zone Identifiers in User Interfaces</title>
            <author fullname="Brian E. Carpenter" initials="B. E." surname="Carpenter">
         </author>
            <author fullname="Bob Hinden" initials="R. M." surname="Hinden">
              <organization>Check Point Software</organization>
            </author>
            <date day="17" month="February" year="2024"/>
            <abstract>
              <t>   This document describes how the zone identifier of an IPv6 scoped
   address, defined in the IPv6 Scoped Address Architecture (RFC 4007),
   should be entered into a user interface.  It obsoletes RFC 6874.

Discussion Venue

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the 6MAN mailing list
   (ipv6@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/ipv6/
   (https://mailarchive.ietf.org/arch/browse/ipv6/).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-carpenter-6man-zone-ui-01"/>
        </reference>
        <reference anchor="RFC3493">
          <front>
            <title>Basic Socket Interface Extensions for IPv6</title>
            <author fullname="R. Gilligan" initials="R." surname="Gilligan"/>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="J. Bound" initials="J." surname="Bound"/>
            <author fullname="J. McCann" initials="J." surname="McCann"/>
            <author fullname="W. Stevens" initials="W." surname="Stevens"/>
            <date month="February" year="2003"/>
            <abstract>
              <t>The de facto standard Application Program Interface (API) for TCP/IP applications is the "sockets" interface. Although this API was developed for Unix in the early 1980s it has also been implemented on a wide variety of non-Unix systems. TCP/IP applications written using the sockets API have in the past enjoyed a high degree of portability and we would like the same portability with IPv6 applications. But changes are required to the sockets API to support IPv6 and this memo describes these changes. These include a new socket address structure to carry IPv6 addresses, new address conversion functions, and some new socket options. These extensions are designed to provide access to the basic IPv6 features required by TCP and UDP applications, including multicasting, while introducing a minimum of change into the system and providing complete compatibility for existing IPv4 applications. Additional extensions for advanced IPv6 features (raw sockets and access to the IPv6 extension headers) are defined in another document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3493"/>
          <seriesInfo name="DOI" value="10.17487/RFC3493"/>
        </reference>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <reference anchor="RFC9111">
          <front>
            <title>HTTP Caching</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="RFC6797">
          <front>
            <title>HTTP Strict Transport Security (HSTS)</title>
            <author fullname="J. Hodges" initials="J." surname="Hodges"/>
            <author fullname="C. Jackson" initials="C." surname="Jackson"/>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This specification defines a mechanism enabling web sites to declare themselves accessible only via secure connections and/or for users to be able to direct their user agent(s) to interact with given sites only over secure connections. This overall policy is referred to as HTTP Strict Transport Security (HSTS). The policy is declared by web sites via the Strict-Transport-Security HTTP response header field and/or by other means, such as user agent configuration, for example. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6797"/>
          <seriesInfo name="DOI" value="10.17487/RFC6797"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </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="DNSSD-SRP">
          <front>
            <title>Service Registration Protocol for DNS-Based Service Discovery</title>
            <author fullname="Ted Lemon" initials="T." surname="Lemon">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
              <organization>Apple Inc.</organization>
            </author>
            <date day="29" month="January" year="2024"/>
            <abstract>
              <t>   The Service Registration Protocol for DNS-Based Service Discovery
   uses the standard DNS Update mechanism to enable DNS-Based Service
   Discovery using only unicast packets.  This makes it possible to
   deploy DNS Service Discovery without multicast, which greatly
   improves scalability and improves performance on networks where
   multicast service is not an optimal choice, particularly IEEE 802.11
   (Wi-Fi) and IEEE 802.15.4 networks.  DNS-SD Service registration uses
   public keys and SIG(0) to allow services to defend their
   registrations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-srp-24"/>
        </reference>
        <reference anchor="URL-HISTORY">
          <front>
            <title>URL Problem Statement and Directions</title>
            <author fullname="Sam Ruby" initials="S." surname="Ruby">
              <organization>IBM</organization>
            </author>
            <author fullname="Larry M Masinter" initials="L." surname="Masinter">
              <organization>Adobe</organization>
            </author>
            <date day="11" month="January" year="2015"/>
            <abstract>
              <t>   This document lays out the problem space of possibly conflicting
   standards between multiple organizations for URLs and things like
   them, and proposes some actions to resolve the conflicts.  From a
   user or developer point of view, it makes no sense for there to be a
   proliferation of definitions of URL nor for there to be a
   proliferation of incompatible implementations.  This shouldn't be a
   competitive feature.  Therefore there is a need for the organizations
   involved to update and reconcile the various Internet Drafts,
   Recommendations, and Standards in this area.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ruby-url-problem-01"/>
        </reference>
      </references>
    </references>
    <?line 365?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Some of the historical context in this document came from prior research
documented in <xref target="URL-HISTORY"/>. The author would like to
thank <contact fullname="Brian E. Carpenter"/>, <contact fullname="Stuart Cheshire"/>, and <contact fullname="Bob Hinden"/> for
their prior work in this space. Additionally, the author thanks <contact fullname="Brian E. Carpenter"/>, <contact fullname="Eric Rescorla"/> and <contact fullname="Michael Sweet"/> for their review and
comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Vb624byZX+X09RoRHEzoq0Lh57LCSZyJI9FiJfIslrZINg
0ewukhWR3UxfRGsMv8s+yz7Zft85VX2hqFkDi50/YzW7qk6d63cuPR6PTe3r
pTu2o1euqu3HMklrn7rKzorSXvj8ZnxRpMnSnhZ57vDTra/vrM/tp8vz8auk
chmWFHWRFstqZJLptHS32Ku3EC8OFo9MmtRuXpR3x3aark1WpHmyAgFZmczq
cZUufJ784seLul5PfTVecqsltxo3pR9jyXj/yFTNdOWryhd5fbfG4vPX129M
3qymrjw2GQ44NmmRVy6vmurY1mXjDOg6MknpEtD32U1tkmf2PK9dmbvaXpdJ
Xq2Lsh6ZTVHezMuiWeO9t9fXH0emmFbF0tUOOz3/8cUzc+vyBgdYO3zNWqVl
9Bk7+Hxuf+bPfL5K/BLPvatncq/xZv7nzdGkKOf8NSnTBX7lD9Xx06dLX9XV
RH9+eoLf/K2rnn5spkufPu1v8ZSL575eNFMsP0tufXYVuPf0u5nJPZbgV1X3
SBjsNdEjJr74/l2//83Jol4tR+bG3YHvGZg6tucfb5/bzK2Xxd3K5TUfQYn0
fxf83+rs/ZVJmnpRlFyAG1ioJKRzNrGRanmoiiW3Gf4A1h7bn4tivnT24uJU
nlV16Ry4cPB8f9+erNYLXNsleGg/JuXNJrmTt1Ko8LF9VzR5ncAM/t27jTwv
3RzKeGxPT/S1IsPJL5/tPzsKf2MBVf5T7msYzVVNnttihpNc6dNE3nKqKFnk
24Ti/vOcTydpsTImL8pVAjuC9hmfz7q/LHkzvrg6ln2iSeuzkV4Px7iKi/Qd
az+/Pbn+/PMxrPyW2gqS8iwpM/lVTMjOkmXldMeknLu+ijTlclKtXTrZLJJ6
Mxdl5UGnHy63iOATuw5O4v+Flpmr08U9ah6JmaRFWY37p5Mn//Hh/evx9eXJ
6V9eXx4Mqb1q1nQDqoSdutoky0pXVa76Sa/Qqh/+G4s+fR+tm80m2varZt7a
dbUoNv85beaTdO5/8tkfD18cHj3bRe7hgNwBtb8UubM+g8n4mXdl9X+iMxg9
tO6p8pQSfwqX28AZHb08HBljxuOxTaawG8QMYy46Zp1/hML34kWyXBabyi4K
eDZb5BaGZSvYpoXrpbu1dYEFq1WTewYHu8HhxiXpwhZ4tZS/i6aWdbmD+TA4
pbhomSz9L/gbBwYBUXugWGUCspq0bko3sdcLZ/DGunQz/wVWd/D85eTwh2eT
/cn+04PnEghm7sf94+OnB/t242Dx2MmVt+GgeuEru27KdVG5iXlbbNytK/fs
FLTxYPzBOITrJbcOKrPysG15UINx8P03bqciGdw2c3jCM5oqmeu9JbJOJbJG
ta14BdCAUNnQI/IHuDTcZN74LMlTxz0MVMhOGcTBTZcn0+Xg3HQrgFcN2PvQ
CQaKUdg27tnLN6cS+vZsQjbe+qKpbFLXbrWu8X+L98RuhVWiJJOgHyufZUtn
zCPG2rLIIBPwxpjrwlZ+tV762R1Jm/l5Uwrb6BNztwE3y2yDcL0HDubNLBFZ
lnSZtctBhAeVw4UwFdGuZTJ1y4pcEL0TrWkgTz4pRav4ZLh2DfabKUlZ3+lF
HPcDo7AIf/jSTkvosCsDp3ykJNzCU1maUtR1emdcjggw3Ais++ulBAbRuKS6
ib9H4qo0ya2vVQ0SW62Ssl4vYNVg5ueFhzz59ir5Z1FSiGAU1C+YEPfCPlCJ
ZTHFve8swEctStBq3B7WQ4dN6fAzLv2gyajm+ir/HaS7ROiDsG8RhLjdxL6B
vrovCa4N4eBwo3YdFAx8uPUJyM98iT/t2rlyXBdj/l/0ERe4s3lRq70kKcCm
Ciu3dF31nUlA0zwnWZ1dO5oTrjRf2LO3px/hydTp8ZbYOMlghrWvHLUX2txH
nKaVFUzGl8KTaAAVvEhS+gK8oVAogKkQVVCq1QK3aYRBnSWZlqKgCjOgBDJt
k1SkFkuwuxD39etPsJxn+/svvn2T/UsHGyDCvoUIzDRJb+i+sQL3x4pnYQX8
K1ZMbOtrIPeqJ8jdrsaIq8GrK9sA93qVvnoXp5j9gvesyIe09FOl9OvX3kY4
FbY5cDadF1Di6Ae+ffseT2DgXkDCStVpBgVy2a7zw/Kx7vyQs4PaMkY4AIOe
e+V5LrjocJrsufWy3OvRI+rFLbWM6ymQM4QEIDL+zXs7CyBqiUQrO3r36ep6
tKf/t+8/yL8vX//10/nl6zP+++rtycVF+w8T3rh6++HTxVn3r27l6Yd3716/
P9PFeGoHj8zo3cnfRqqGow8fr88/vD+5GPEy9YAdCc2zoJZ6Ji+QAfUnqcyA
qa9OP/73fx1Qn34DkR0eHLyEBuofPx6Qy3azcLmeVuRwB/onlAfmt167pBSP
tUTcSNZQjqUqDmFKbuHj6JJ+/3dy5h/H9g/A8QfP/hQe8MKDh5Fng4fCs/tP
7i1WJu54tOOYlpuD51ucHtJ78rfB35HvvYd/+Amm7+z44Mef/mQYxy46azHm
yjP60us7hoR0Sc7dJstGDG7qaApihoJwNOI4iW8ZbId5tgjYIXVGsoqt1Kk/
6Jn3urNE/Az34ssEB+J981DIp1OmA+h5lV2oRFyL6buWqIHIcBCS1Yx6PCDF
vXRfvNhJi3HMOQJ6mYX4FgM+/y+eOmzxWAOibY02eobWFz4BDECUMdsrM18J
e+XYnfdJ8jugZWDNQWB0XGV6b4GnvRAnHojBAPIU54z0Eu7UL0Pc3XXSxODa
4kp4yn2fzSPmLndAHLheiSsXKxoeg/3MbciiBU4EIJ16wuSZIcAFHiECkvhO
BUKygB8r3r+qgZZ5oaW/QTiBZF4RkoI8PbovRAkNgBbgXwG9ioEhCWrIKwqk
ssl9UEWoQIrWCFfJXJ07PK+gjURJSR8SwHeoy/MtdeGjB3Tz11j4/Fnkm418
M/8L35o8cM4OJRfDd8BmFMWqWdZ+3QdTADal2iCwqRgkMR/YNndZUKCQ9uyC
DopFVywhwBZzcb+/Bt1sCt2Y0+u21isk+gCqCSEU1KYOgRhMgGQAZp1mhY+/
fr1ygrztD/yxRSVPjMKSfzVAayGkcvs7SdawfbpsCFi3k0slGC5LQW4hZkaK
zA4dsApexZwDGMoYdxm37Aj/TMDdkRyxF6EnEaLZ4ECwI3g3lx2LE7C4FrUT
B1d3FaAD5eoRqsI1NL2Uy3cEGyE4KAR4U6Q3rt2JWUf+cMofxLlySURaD76q
yEzjs6LIJGdqgNTiPg9nZbES578qJLTL1Ul82I6KzJSHjwBuUrWnT6z71E0O
G6CyCilxQeBUD4qCFMmLFLsdvjg6BPdh6oV4ZB6eIieKiZdsJqzL+mkDvOBt
P5nRwpN4kP7xMGAoTLIW1cVupVszkc5FVNvVicBUN5u5gIcFT/LKWbQ8M3S1
w7MioqWLsa/gm1iNzTN4QQfCHELDrcZP+rai5sHYA3ixCfCxuO8n95ggZuT5
BgplpvA1M3jNKCjcmCbNbZFDudsEQsMl6oIVPIm3tftSq89DGo/tAuSGjZ3Y
60TZcr0p7NXapeBDGnEE35bXRFhSgxC5gBdAFMu7ABPort2yWCswF0dvPxfl
Mht/BmttKGsbWT+VbKkO95QKOXc5ePnymX1cORdU4uD50X7ITsKDF0c/wjFM
7IdbiUnO3IEESR7DLnRbrH5SSbDM3RKDZ4Gb1eBmE6T9CByAJmmzTMo9EzX0
vu4M8yeQ+TKS2SruE6nlaLF/zcKZJGgIms06E16x2TAggFsd7u//QA+omdWP
z7mPRBr8IBUNKeOTnSHFt9DCrIASRBEIm6VCuSdp6owWKGUWuboB38dQCHl3
eH8LT15RNFFYR6eSuuIGehfdVoJA3dD5G+x9E86krQ2vI5ooQmCxQiw32GXY
iEu0iGpiEZV310qwcPCNKjPsd10w4hf5Bi9BvhKIWGhDjr2lZ1RP06on9dzn
DVlft1qxpyhRynkh2/YZCwgRQqVFCUGvCwkZW0AuhDexaSpxEARt+2QpPr+G
0WQuTVj1IqM1KQakBNdkh0Ui5QrdKOsURWODiTpb8QpP7+lJCH0CA6ViKh7h
1rVZkJo2/NUXBlgjHHfTPcTBWJcJAugOSnbIL0a3wSEU+fDa9j0cVhcPFITI
P5mb2tFg+ciGlMBUiCOs1mr8X/kqx4PyGPmGl8JUCw2roBqVnRaZj2GLMZx1
NgKVcMCdFhNBYNrR48tt5k2ja5QEP88EL1PuodTUiZu+NV0URRVwgy5TWfb3
VCcqHqIHF0+2nb/9+mhQPYC+aLwkO+fqo/DquljT/eA+YsCIUjAdIUF7hlp0
lEIaFsTUjBUiw7REakwVDVdAMv8NDsbCDXYrSjg1Vq55rJSO8UpSBWZh0Sop
74wCCBw1gNgT+46Mb2UTT581uSI2hH7AlIBzQYr53sr3HqJdyBfpW3sJo+mq
7VwmAFoLR5WW3R5CQq3fFCnTs/Y9Ik/pMUbLr7+KAoy2kgWfsPAtrY7XJ5cX
f/vj+fhsMnPIYMsx0i7gtOWYq7VAlEhdCLkMqFsSsBJ2i1WOQPybhtcftZW5
YDv3o0MIMBEbH00OJ4eE+12kUHUO5c64UXUHE/9COx79/fZgos2D5N9cfvCP
UaCurdeAJyYnhbaLWNOmlowq4ChNeBGCtF7QVAoYTz99vIrxyzB+8YGwpdo4
V0sHlRzxmUa0GK/ZbCzVYxzuHxwGSR0cMdSxYncLnslFFH5RcEsVmCwOcFDc
vZCctvBQQnFb/4thd4Awdrs8o3ifLaCNpj5BJ6i/2zrRAjtFiKG/omyppZVz
+7wFvEESecBb1MVOVoBuytLR34OMfnv4g0pJq339WnrfATN2SY269Vt224WG
iKXdJUnkJPkqQ4xud9qo02SpkgXnJCyEI2+WbeaFvCbzM+k8rOAMDP6YwVZx
LFMI8CfXzJZsDjvvtVYLR4N0xiv6cGkjFyp9dSOIUiOfy6VNlLJSj3RXYyoD
W0tnyn5c1IGCeV/VBiyl3ETKE8nOGIoCAapFgBahARJEICRvtAmWub72GKmv
uy/iPlsWM/py+iFWf3BcBi80p8mfzFjm7+QDDaPRkI666MILRL7XRuMeGGo7
ykJ9hIs4HY75RhZQC00vOcNrI2FcrAvYAmkCVo2i17jXSW4BqkIBDqlUkC+2
YE7v/qndkUSEHvp00OP7+t+2nDjvsNNh3esKqwdAxIwiONGoiNRCOefVO2uB
UhuTVIGIeCVjIDPnRQjMHUv7Vg+voC3ZWPLnpiJd8lKUuHW1WHVs4LbOLk/e
XEt4fnWu/kumWJ5D08flLOUPU88KvY1NLt+2FEIgUWsXfBPNgCbCpKL2igZa
ekn/wFHh6tGco9ugG2FLUTnR2WrkArO/wAeJZ63tBrUdolcTvOjcK4J2bN3B
trSpGzjvvqxV/uL+Uod3t0OFdkgML5wuPGKGbWeYxIlHw2sDCUR+oVgYfm+X
RHr31cKZT63oXnDodMdNMH+AtHzd/Mrkg6bSFcA9+7Jd7avqhCw6+elchKwj
QGlSrgX2qbyp6+PGj/cPKO/zUFqG4rjl3k4z9JJuMIUqxS1kbs1wKSYVNGFQ
AUFYdctZ2BoMTLSK0Hfu3UGDgpb4Y7J36vpHMnlVPA2d7rX/Q1fGqUh8Hk7m
6IC0pKgAu/Q0bs0kaBcdSdUeGXFs69QDn7Y7aDoW8aU2leIYqYi8Dc7z1zE0
t38V1f/ro9bjGtM+1RqZXkRiEjgvIU7K+U4GN7BsLG2SuiiWVbAWXARbAYRW
CwPoDHwNJ0adL6r4ohZz6VxrFqhZjoZu5urrBLJSI9s6Wf+ovZbTYsP9hQDA
beUnyXsQ2T4uSokwxHitXj8JDesWcEfy567mS5xTausHz14etagQJDGzWbnM
SzGOJWFCunvVxSrgas0xY1X0qm3abGt97AoxU4sNaisdTldDDQLjp0iHmRlS
/NgRKsZrCVcarX1U2tsT5MQu0TZZBI0Q2sqzTgQU0awCNwdYKCoAjvVLFqP2
BMDKi2o1U2ckCWLDf9LpUy+326XGSJ3BZxCp0y6JlO+CnLsydm4/lH4O6oME
nj/74VkbaAv9SZu/62QeqjVS+QoDQyaGuOi4jqUPQhaHupWX8rtENSgMOZqI
bjXMeYN5ccITziTFfoGOlwcHB6IJuht+SZk7SplZ0EksjAsPqkUSdDIM7SFq
YCPOxvU2UYgLH8tsvGXXugAGp/eIHHjx8kWrgz5XxKhRme6O2fhdgZ9Csfu+
1LfaHdFTiTJqi0Y8U2Aufb1A9QAONb3lwcKUjh37bWGN1RLmobs9bVRL5CFe
K4hMjEHqrFnqnIwG0hxqMmE+HyBQrymoXYTd24u36O/B2KZ+3cTUSrmVx1kc
cL99R+9axFxq48vYD2QPjQHGwFFkiUT/pVRmpcxfS1OtxeQ9FVb9rULK0Vln
3ocp/R5Mi/GF5czHdl3UbEWKaAu085XrKlaPozsLqolYvPIyXdPknuiUjpH+
UMZln6hxh5gmfNreou360C4IIhdSM4+DfeQY9EBYJnM8BK8SNULZhUzcqv4p
rJJRwXw7iQHfZGoDKW1oq3apv/BwgC/BSdJX7VQNStVEGtV+qmaOLK6uumIb
nJhfeyoBmSCN01B/83XsDEtduGIf/14hs73KHtZvIlPEVNRygE2YelWFoAcZ
seqhUmk01o1WjB8okgZVuVd8Er3rCqnMHqAgjDxqljrOIR2drZ1XBI+lNljj
FJuOQKXiUqeK6lvILEyEQ0klRYVvww9Y8nj029GT1pHFEh2rm+HdcZyLi1if
43imFWchCCOT4bGYAPfimTig0GgVDdRxVPVgagUrI5XMnt6ByxtBXBUbxtK+
Fg+xLnTsMjT16alXUz9vOM8ksIOKdykzD0u1kBCwYkIGr0Vm+2rVd91C2z3N
45ZGKxTqHFp93y48CM4ntWt2oqLmBRcS2/im18YfpGr3jo2Ts0vO94I47OIE
e4acnZe8ctCS0E18yLoCsOfc0KBuAf9RtgOTzCSMMJchibMZADdpl2T2ahl1
0XqioLeKHu45OY3IIVPyVa+XtLzrsPWQC4yJNKNxaJpGAgy/tPC1k+JoJXao
txFrZFE2wimZyBRnx4momK9x5K1YN2sdndjR6Q4AT+an1ADeXr+7EDj+c4HX
umkzYO05nlTfTD+joDTXY9Yzl5Y/CwDS6FzFKosAwRZX9GYLeiVd7N+N+4Qc
MyQqUXCtDW2le2arv3ou5aJl27hgZ945adJVYTpas30dcJKPIvogR9YFpF51
9SUV9s55kWtpc8avP9qu9IJsjeV8hr0If3vpfbycprSI94lkqnGLXkc7B+Ul
tEWK//Qb+ogf8GghXJKHqLix/jBNSlWblphavhtKQloUrtdUKs4kv2mvfPb+
6tgSE4R6gOkbsFjRdju0bTpjab9he/TDSy1Mh8SdGhxAbgu1Bb7IftEBLEIH
v5DxDsvtknxwJBMS5vNMTB+uAag9llUY0WhjkSj55daE5q99Q/b10faIpoq+
j/2DVfVCgFgqmL/0Ssvu2fZ6OFD3/f2SqFNkOQdgiIi0NtImm8UDIyKh4PDA
sfxiafuwVU+wvxFc/5x1vDiEHCNKPHmnjYqSyHAaDxVyIYmz0EJqe5oy9q5j
GaoZD34ZoHktlvH6JraytAW8/VmCDZOYCoeoT3Il3XVAlHyfQLsChrt1GuXC
4tATlvohV9MWvIu+hU6nv9HE6t3M8KOAsNfapzdb3NAa7xekrr+4GN2mvUk+
qopQGHovAom3Z9zjNOD2aPj0LkxIhQgIM8TN9jTBDVC25NRJ12UMQxy+Sy31
WiehrlqsY+peF0ZzUSGPFSP5ICV6Bd3kd5V9d3La857nesSQ+6xUhYErHU3S
a9rHs+6aw8sk4RUzuIAmquQESx/cSOGOOOVEhwVFZoFZ2i3NAgg24d7tHOFe
bKqwU4pchQ3WwBQpo0jVLXwz0V0t3ojeR4nca3umPDd+3SDaFEf/ej7E9Ibh
XoZhuGh6AuAqtgwDh0SHumpPiAgx8Jl2CoiGwrv19n7GvYNdH0nFYlg7XPDW
m6I/awu98yXT5mEvqpDBhqYMUSZWmWQXeUsANc6FHe2ZHVceJpfxBco5Mi5O
lGuGj0trIoJsgdiBLaSuXkNq5g0gI2TLSYstW3E9vBeKQ3ECGogw1cxapjn0
aPmOinzO7ChsMxEXMiICY/jOndYM7Gc/fuNNEEZI4vH4Nf+RuzrWpaS+2Dth
Iwwk3kzrToUiG4wPlVZuLpKO+8WRAM2LpDxQ+mwuwe5NOwmm4Gz744QIeFh4
J9Db/uZB0d+3tqevEhLTA3TePQ7TlrAk2J51GOk01JTjNBk1/ypo5FngOVGs
RE0wLJhdLwZ00n7su8q5TL5isye0TBZGw5782JWf/YU6xuDToVgrkKbA+6ur
s/HV5ceu65PlVZWNq3ItFnFOC48fAU5Byk21kyqReYthJU38LmI4UUbQwK+8
ZVZmT4u2ZFBcn7UMCjWgWAee2FcBDoRu+V6sDwwk7Qly+19oqLrpIFQoJkdF
EsFdxfLGtthkDiRhftl1e+8XTlsHpzXlEB94U1sWwh0TF4RyxUInUXrTi9JX
Yu0H5nFszO91D2YPcoxWA6TR0M1Od+Pwi6F5xdpmoARxy9q2HMzx3YWMVXXX
mLLQm5ScWP+9VEaunuKaH/9y3r3SebtOa+N49FglLpWCnn/2/OBVpl1k/FPa
fXGiXxz2A5CHuBci6sEra4e5lK96+/p8EbsgckRDhaq1TsIOuH4KRuFLWR2b
aejtygWaE5QNjC2gyDxdFOS3eljNScMXnPqVWpQn/E6/9hgwJOUbivO9qrFM
DUnXKYgfKzlGtPWRSNc466dpoqjnJ+9P7inp8OOshbQk9c0kjU0F+fKTX7dx
l5P0Ji82S5fN5ds88/VYwYTL/jiSD5BHQP5Xvc7u/Yna+19BybSC1nFklpnT
JMzuTXwj+tmf2Cp/e351/eFSR4rKZno3bsrlOHwupvNEcewvMJ/fBVCRJYfD
Ll9fAQUh0EzsaexnfmP9Gb9c1Q2z0VNEgQVC7DcdjclkUTG1b9myzPE0QmCd
B5OTypv2YsghU7ddmK87skIy2aPE3KPkNbu7lwgzRblMvrUzvV/fQakS+I0r
Tg0FSsKAAceB3EbGRNSpsSD0Pzozu+0VRAAA

-->

</rfc>
