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


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-ccamp-rfc9093-bis-15" category="std" consensus="true" submissionType="IETF" obsoletes="9093" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="L0 Common YANG Types">Common YANG Data Types for Layer 0 Networks</title>

    <author initials="S." surname="Belotti" fullname="Sergio Belotti" role="editor">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="I." surname="Busi" fullname="Italo Busi" role="editor">
      <organization>Huawei</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <author initials="D." surname="Beller" fullname="Dieter Beller" role="editor">
      <organization>Nokia</organization>
      <address>
        <email>dieter.beller@nokia.com</email>
      </address>
    </author>
    <author initials="E." surname="Le Rouzic" fullname="Esther Le Rouzic">
      <organization>Orange</organization>
      <address>
        <email>esther.lerouzic@orange.com</email>
      </address>
    </author>
    <author initials="A." surname="Guo" fullname="Aihua Guo">
      <organization>Futurewei Technologies</organization>
      <address>
        <email>aihuaguo.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2025" month="June" day="17"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>


<?line 206?>

<t>This document defines a collection of common data types, identities,
and groupings in the YANG data modeling language. These common types
and groupings, derived from the built-in YANG data types, identities,
and groupings are intended to be imported by modules that model Optical Layer 0 configuration and state
capabilities, such as Wavelength Switched Optical Networks (WSONs) and
flexi-grid Dense Wavelength Division Multiplexing (DWDM) networks.</t>

<t>This document obsoletes RFC 9093 by replacing the YANG module it contained with a new revision that includes additional YANG data types, identities and groupings.</t>



    </abstract>



  </front>

  <middle>


<?line 217?>

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

<t>YANG <xref target="RFC7950"/> is a data modeling language used to model
   configuration data, state data, Remote Procedure Calls, and
   notifications for network management protocols such as the Network
   Configuration Protocol (NETCONF) <xref target="RFC6241"/>.  The YANG language
   supports a small set of built-in data types and provides mechanisms
   to derive other types from the built-in types.</t>

<t>This document introduces a collection of common data types derived
   from the built-in YANG data types.  The derived types and groupings
   are designed to be the common types applicable for modeling Traffic
   Engineering (TE) features as well as non-TE features (e.g., physical
   network configuration aspects) for Layer 0 optical networks in
   models defined outside of this document.  The applicability of
   Layer 0 types specified in this document includes Wavelength Switched
   Optical Networks (WSONs) <xref target="RFC6163"/> <xref target="ITU-T_G.694.1"/> and <xref target="ITU-T_G.694.2"/>, and flexi-grid Dense
   Wavelength Division Multiplexing (DWDM) networks <xref target="RFC7698"/>
   <xref target="ITU-T_G.694.1"/>.</t>

<t>This document adds new type definitions to the YANG modules and
   obsoletes <xref target="RFC9093"/>.  For further details, see the revision
   statements of the YANG module in <xref target="yang-code"/> or the summary in
   <xref target="changes-bis"/>.</t>

<t>This document obsoletes <xref target="RFC9093"/> by replacing it in its entirety. It
provides a new revision of the YANG module contained in that RFC,
and retains the data types previously defined, but also adds new type
definitions to the YANG module.
For further details, see <xref target="changes-bis"/>.</t>

<t>The YANG data model in this document conforms to the Network
   Management Datastore Architecture defined in <xref target="RFC8342"/>.</t>

<section anchor="terminology-and-notations"><name>Terminology and Notations</name>

<t>In the context of this document, the term "layer 0" refers to the
photonic layer or WDM layer network in the architecture of the
optical transport network (OTN) as defined in <xref target="ITU-T_G.709"/>, <xref target="ITU-T_G.872"/>,
and <xref target="ITU-T_G.807"/> as opposed to the electrical switching
layers of the OTN, which are typically referred to as layer 1 (L1).</t>

<t>The term "layer 0" may also be used for other transport network
technologies (e.g., copper-based, radio-based, or free space optics-based, etc.), which are outside the scope of this document.</t>

<t>Refer to <xref target="RFC7446"/> and <xref target="RFC7581"/> for other key terms used in this
   document, and the terminology for describing YANG data models can be
   found in <xref target="RFC7950"/>.</t>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?></t>

</section>
<section anchor="prefix-in-data-node-names"><name>Prefix in Data Node Names</name>

<t>In this document, names of data nodes and other data model objects
   are prefixed using the standard prefix associated with the
   corresponding YANG imported module.</t>

<texttable title="Prefixes and corresponding YANG module" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>te-types</c>
      <c>ietf-te-types</c>
      <c>[RFCYYYY]</c>
      <c>l0-types</c>
      <c>ietf-layer0-types</c>
      <c>RFC XXXX</c>
</texttable>

<ul empty="true"><li>
  <t>RFC Editor Note:
Please replace XXXX with the RFC number assigned to this document.
Please replace YYYY with the RFC number assigned to <xref target="I-D.ietf-teas-rfc8776-update"/>.
Please remove this note.</t>
</li></ul>

</section>
</section>
<section anchor="layer-0-types-module-contents"><name>Layer 0 Types Module Contents</name>

<t>This document defines a YANG module for common Layer 0 types, ietf-layer0-types.
This module is used for WSON and flexi-grid DWDM networks.
The "ietf-layer0-types" module contains the following YANG reusable YANG data types, identities and groupings:</t>

<dl>
  <dt>l0-grid-type:</dt>
  <dd>
    <t>A base YANG identity for the grid type as defined in <xref target="RFC6205"/> and <xref target="RFC7699"/>.</t>
  </dd>
  <dt>cwdm-ch-spc-type:</dt>
  <dd>
    <t>A base YANG identity for the Coarse Wavelength Division
Multiplexing (CWDM) channel-spacing type as defined in <xref target="RFC6205"/>.</t>
  </dd>
  <dt>dwdm-ch-spc-type:</dt>
  <dd>
    <t>A base YANG identity for the DWDM channel-spacing type as defined
in <xref target="RFC6205"/>.</t>
  </dd>
  <dt>flexi-ncfg-type:</dt>
  <dd>
    <t>A base YANG identity for the DWDM flexi-grid Nominal Central Frequency Granularity (NCFG) 
type as defined in <xref target="RFC7699"/>.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>Note that the only value for NCFG standardized in <xref target="ITU-T_G.694.1"/> is 6.25GHz.</t>
</li></ul>

<dl>
  <dt>flexi-slot-width-granularity:</dt>
  <dd>
    <t>A base YANG identity for the DWDM flexi-grid Slot Width Granularity (SWG) type, as defined in <xref target="RFC7699"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>Note that the only value for SWG standardized in <xref target="ITU-T_G.694.1"/> is 12.5GHz.</t>
  </dd>
  <dt>fec-type:</dt>
  <dd>
    <t>A base YANG identity from which specific FEC (Forward Error Correction) type identities are derived.</t>
  </dd>
  <dt>line-coding:</dt>
  <dd>
    <t>A base YANG identity from which specific identities defining the bit rate/line coding of optical tributary signals are derived.</t>
  </dd>
  <dt>wavelength-assignment:</dt>
  <dd>
    <t>A base YANG identity from which specific identities defining the the Wavelength selection methods, as defined in <xref target="RFC7689"/>, are derived.</t>
  </dd>
  <dt>operational-mode:</dt>
  <dd>
    <t>A YANG data type used to identify an organization (e.g., vendor) specific mode for transceiver capability description, as defined in Section 2.5.2 of <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/></t>
  </dd>
  <dt>wson-label-start-end:</dt>
  <dd>
    <t>The WSON label range was defined in <xref target="RFC6205"/>, and the generic
topology model defines the label-start/label-end in <xref target="RFC8795"/>.
This grouping shows the WSON-specific label-start and label-end
information. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>wson-label-hop:</dt>
  <dd>
    <t>The WSON label range was defined in <xref target="RFC6205"/>, and the generic
topology model defines the label-hop in <xref target="RFC8795"/>.  This grouping
shows the WSON-specific label-hop information. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>l0-label-range-info:</dt>
  <dd>
    <t>A YANG grouping that defines the Layer 0 label range information
applicable for WSON as defined in <xref target="RFC6205"/>. The label range info is defined per priority <xref target="RFC4203"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>This grouping is used in the flexi-grid DWDM by adding more flexi-grid-specific
parameters. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>wson-label-step:</dt>
  <dd>
    <t>A YANG grouping that defines label steps for WSON as defined in
<xref target="I-D.ietf-teas-rfc8776-update"/>. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>flexi-grid-label-start-end:</dt>
  <dd>
    <t>The flexi-grid label range was defined in <xref target="RFC7699"/>, and the
generic topology model defines the label-start/label-end in
<xref target="RFC8795"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>This grouping shows the flexi-grid-specific label-start and label-end information which is used to describe the range of available nominal central frequencies. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt/>
  <dd>
    <t>As described in section 3.1 of <xref target="RFC8363"/>, the range of available nominal central frequencies is advertised for m=1, which means that for an available central frequency n, the frequency slot from central frequency n-1 to central frequency n+1 is available.</t>
  </dd>
  <dt>flexi-grid-label-hop:</dt>
  <dd>
    <t>The flexi-grid label range was defined in <xref target="RFC8363"/>, and the
generic topology model defines the label-hop in <xref target="RFC8795"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>This grouping shows the WSON-specific label-hop information. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>flexi-grid-label-range-info:</dt>
  <dd>
    <t>A YANG grouping that defines flexi-grid label range information as
defined in <xref target="RFC8363"/>. See <xref target="label-range"/> for more details. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>flexi-grid-label-step:</dt>
  <dd>
    <t>A YANG grouping that defines flexi-grid label steps as defined in
<xref target="I-D.ietf-teas-rfc8776-update"/>. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>wdm-label-start-end:</dt>
  <dd>
    <t>A YANG grouping that combines the definition of label-start/label-end information
that was defined separately in wson-label-start-end and flexi-grid-label-start-end,
to support optical network scenarios that contain both fixed- and flexi-grid
links. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>wdm-label-hop:</dt>
  <dd>
    <t>A YANG grouping that combines the definition of label hop information
that was defined separately in wson-label-hop and flexi-grid-label-hop,
to support optical network scenarios that contain both fixed- and flexi-grid
links. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>wdm-label-range-info:</dt>
  <dd>
    <t>A YANG grouping that combines the definition of label range information
that was defined separately in wson-label-range-info and flexi-grid-label-range-info,
to support optical network scenarios that contain both fixed- and flexi-grid
links. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>wdm-label-step:</dt>
  <dd>
    <t>A YANG grouping that combines the definition of label step information
defined separately in wson-label-step and flexi-grid-label-step,
to support optical network scenarios that contain both fixed- and flexi-grid
links. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>transceiver-capabilities:</dt>
  <dd>
    <t>A YANG grouping to define the transceiver capabilities (also called
"modes") needed to determine optical signal compatibility.</t>
  </dd>
  <dt/>
  <dd>
    <t>When this grouping is used, the explicit-mode container shall be augmented
with a leafref to an explicit mode template with the proper XPath, which
depends from where this grouping is actually used.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>Examples of how the transceiver-capabilities grouping can be used and augmented with a leafref
to an explicit mode template are provided in the YANG models defined in
<xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/> and <xref target="I-D.ietf-ccamp-dwdm-if-param-yang"/>.</t>
</li></ul>

<dl>
  <dt>standard-mode:</dt>
  <dd>
    <t>A YANG grouping for the standard modes defined in <xref target="ITU-T_G.698.2"/>.</t>
  </dd>
  <dt>organizational-mode:</dt>
  <dd>
    <t>A YANG grouping to define transponder operational mode supported by
organizations or vendors, as defined in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>.</t>
  </dd>
  <dt>explicit-mode:</dt>
  <dd>
    <t>A YANG grouping to define the list of attributes related to the limits of the optical
impairments, in case of transceiver explicit mode, as defined in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>Note that the actual portion of the spectrum occupied by an OTSi is not explicitly reported within the explicit-mode parameters because it can be calculated using the available-baud-rate, the roll-off and the min-carrier-spacing attributes.</t>
  </dd>
  <dt>transceiver-tuning-range:</dt>
  <dd>
    <t>A YANG grouping that defines the transceiver tuning range, which
includes the minimum and maximum tuning frequency, as well as the
frequency tuning granularity.</t>
  </dd>
  <dt>common-all-modes:</dt>
  <dd>
    <t>A YANG grouping used to define the common attributes used by all transceiver's modes.</t>
  </dd>
  <dt>modulation:</dt>
  <dd>
    <t>A base YANG identity to define the different modulation types, as defined in <xref target="ITU-T_G.Sup39"/></t>
  </dd>
  <dt>snr:</dt>
  <dd>
    <t>A YANG data type used to represent an (Optical) Signal-to-noise ratio measured over 0.1 nm resolution bandwidth, as defined in <xref target="ITU-T_G.977.1"/></t>
  </dd>
  <dt>psd:</dt>
  <dd>
    <t>A YANG data type used to represent a Power Spectral Density (PSD), as defined in <xref target="ITU-T_G.9700"/></t>
  </dd>
  <dt>penalty-value:</dt>
  <dd>
    <t>A YANG grouping to define the penalty value for multiple penalty types, such as Chromatic Dispersion (CD), Polarization Mode Dispersion (PMD), as defined in <xref target="ITU-T_G.666"/> or Polarization Dependent Loss(PDL)</t>
  </dd>
  <dt>switching-wson-lsc:</dt>
  <dd>
    <t>A YANG identity for the Wavelength Switched Optical Network Lambda-Switch Capable (WSON-LSC) interface switching capability as defined in <xref target="RFC7688"/>.</t>
  </dd>
  <dt>switching-flexi-grid-lsc:</dt>
  <dd>
    <t>A YANG identity for the Flexi-Grid Lambda-Switch Capable (Flexi-Grid-LSC) interface switching capability as defined in <xref target="RFC8363"/>.</t>
  </dd>
</dl>

<t>It is worth noting that there is an inheritance relationship between the Lambda-Switch Capable (LSC) switching capability, defined in <xref target="RFC3471"/>, and the WSON-LSC and Flexi-Grid-LSC, defined respectively in <xref target="RFC7688"/> and <xref target="RFC8363"/>. As a consequence, the 'switching-wson-lsc' and 'switching-flexi-grid-lsc' YANG identities are defined as derived identities from the 'switching-lsc', defined in <xref target="I-D.ietf-teas-rfc8776-update"/>.</t>

<section anchor="label-range"><name>WDM Label and Label Range</name>

<t>As described in <xref target="RFC6205"/> and <xref target="RFC7699"/>, the WDM label represents the frequency slots assigned to a WDM Label Switched Path (LSP) on a given WDM Link, which models an Optical Multiplex Section (OMS) Media Channel Group (MCG) as described in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>.</t>

<t>The same WDM label (which represents the frequency slots associated with the WDM LSP) will be assigned on all the
WDM Links along a regen-free LSP path or path segment (i.e., an LSP path or path segment which does not include any 3R regenerator). Depending on the 3R capabilities, the WDM label may or may not change at a 3R regenerator: see
<xref section="2.7" sectionFormat="of" target="I-D.ietf-ccamp-optical-impairment-topology-yang"/> for more details on 3R regenerators.</t>

<t>A frequency slot is defined in <xref target="ITU-T_G.694.1"/> as a contiguous frequency range characterized by its nominal central frequency and slot width. The frequency range allocated to a frequency slot is unavailable to other frequency slots.</t>

<t>The definition of the frequency slot depends on the WDM grid type:</t>

<t><list style="symbols">
  <t>In case of CWDM fixed-grid, defined in <xref target="ITU-T_G.694.2"/>, the frequency slot is defined by a fixed CWDM channel spacing (cwdm-ch-spc-type) and by the nominal central wavelength which is computed as described in <xref target="RFC6205"/>. The formula in <xref target="RFC6205"/> is copied here for reader convenience:</t>
</list></t>

<figure><artwork><![CDATA[
      lambda = 1471 nm + n * channel spacing (measured in nm)
]]></artwork></figure>

<ul empty="true"><li>
  <t>where 'n' is defined in <xref target="RFC6205"/> as integer (positive, negative, or 0)</t>
</li></ul>

<t><list style="symbols">
  <t>In case of DWDM fixed-grid, defined in <xref target="ITU-T_G.694.1"/>, the frequency slot is defined by a fixed DWDM channel spacing (dwdm-ch-spc-type) and by the nominal central frequency, which is computed as described in <xref target="RFC6205"/>. The formula in <xref target="RFC6205"/> is copied here for reader convenience:</t>
</list></t>

<figure><artwork><![CDATA[
      f = 193100.000 GHz + n * channel spacing (measured in GHz)
]]></artwork></figure>

<ul empty="true"><li>
  <t>where 'n' is defined in <xref target="RFC6205"/> as integer (positive, negative, or 0)</t>
</li></ul>

<t><list style="symbols">
  <t>In case of DWDM flexible-grid, defined in <xref target="ITU-T_G.694.1"/>, the frequency slot is defined by the slot width and by the nominal central frequency, which are computed, based on the slot width granularity (SWG, fixed at 12.5GHz in <xref target="ITU-T_G.694.1"/>), and of the nominal central frequency granularity (NCFG, fixed at 6.25GHz in <xref target="ITU-T_G.694.1"/>) respectively, as described in <xref target="RFC7698"/> and <xref target="RFC7699"/>. The formulas in <xref target="RFC7699"/> can be generalized as follows:</t>
</list></t>

<figure><artwork><![CDATA[
      SW = m * SWG (measured in GHz)
      f = 193100.000 GHz + N * NCFG (measured in GHz)
]]></artwork></figure>

<ul empty="true"><li>
  <t>where 'n' is defined in <xref target="RFC7699"/> as integer (positive, negative, or 0) and 'm' is defined in <xref target="RFC7698"/> as an integer greater than or equal to 1.</t>
</li></ul>

<t>The definition of the channel spacing, NCFG and SWG in the YANG model have been generalized to support modelling of vendor-specific values (e.g., finer vendor-specific granularity for NCFG and SWG).</t>

<t>The WDM Label Range represents the frequency slots that are available for WDM LSPs to be set up over a given WDM Link.</t>

<t>The WDM Label Range is defined by augmenting the label-restriction list, defined in <xref target="I-D.ietf-teas-rfc8776-update"/>, with WDM technology-specific attributes, using the l0-label-range-info grouping (for WSON only models) or the flexi-grid-label-range-info grouping (for DWDM flexible-grid only models) or the wdm-label-range-info grouping (for models that support both WSON and DWDM flexible-grid).</t>

<t>Each entry in the label-restriction list represents either the range of the available central wavelength values (in case of CWDM fixed-grid) or the range of the available nominal central frequencies values (in case of DWDM fixed or flexible grids): the grid-type attribute defines the type of grid for each entry of the list.</t>

<t>In case of DWDM flexible grid, each entry in the label-restriction list also represents the range of the supported slot width values
based on the following attributes, defined based on concepts used in <xref target="RFC7699"/>:</t>

<t><list style="symbols">
  <t>slot-width-granularity, which represents the minimum space between slot widths;</t>
  <t>min-slot-width-factor: a multiplier of the slot width granularity, indicating the minimum slot width supported by each entry in the label-restriction list;</t>
  <t>max-slot-width-factor: a multiplier of the slot width granularity, indicating the maximum slot width supported by each entry in the label-restriction list.</t>
</list></t>

<t>Each entry of the label-restriction list, as defined in <xref target="I-D.ietf-teas-rfc8776-update"/>, defines a label-start, a label-end, a label-step and a range-bitmap.</t>

<t>The label-start and label-end definitions, when used for representing WDM label range, are augmented with WDM technology-specific attributes, using the wson-label-start-end grouping (for WSON only models) or the flexi-grid-label-start-end grouping (for DWDM flexible-grid only models) or the wdm-label-start-end grouping (for models that support both WSON and DWDM flexible-grid).</t>

<t>The label-step definition, when used for representing WDM label range, is augmented with WDM technology-specific attributes, using the wson-label-step grouping (for WSON only models) or the flexi-grid-label-step grouping (for DWDM flexible-grid only models) or the wdm-label-step grouping (for models that support both WSON and DWDM flexible-grid). The label-step definition for WDM depends on the WDM grid type:</t>

<t><list style="symbols">
  <t>For CWDM and DWDM fixed grids, it describes the channel spacing, as defined in <xref target="RFC6205"/>;</t>
  <t>For DWDM flexible grids, it describes the nominal central frequency granularity (e.g., 6,25 GHz) as well as the multiplier for the supported values of n, as defined in <xref target="RFC7699"/>.</t>
</list></t>

</section>
</section>
<section anchor="yang-code"><name>YANG Module for Layer 0 Types</name>

<t>This YANG module references <xref target="RFC6205"/>, <xref target="RFC7689"/>, <xref target="RFC7699"/>, <xref target="RFC8363"/>, <xref target="RFC9093"/>, <xref target="ITU-T_G.666"/>, <xref target="ITU-T_G.694.1"/>, <xref target="ITU-T_G.694.2"/>, <xref target="ITU-T_G.698.2"/>, <xref target="ITU-T_G.709"/>, <xref target="ITU-T_G.709.2"/>, <xref target="ITU-T_G.709.3"/>, <xref target="ITU-T_G.959.1"/> <xref target="ITU-T_G.975"/>, <xref target="ITU-T_G.975.1"/>, <xref target="ITU-T_G.977.1"/>, <xref target="ITU-T_G.9700"/> and <xref target="OIF_400ZR"/>.</t>

<figure title="Layer 0 Types YANG module" anchor="fig-yang-code"><sourcecode type="yang" markers="true" name="ietf-layer0-types@2025-02-25.yang"><![CDATA[
module ietf-layer0-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-layer0-types";
  prefix l0-types;

  import ietf-te-types {
    prefix te-types;
    reference
      "RFC YYYY: Common YANG Data Types for Traffic Engineering";
  }
  // RFC Editor: replace YYYY with actual RFC number assigned to 
  // [I-D.ietf-teas-rfc8776-update] and remove this note

  organization
    "IETF CCAMP Working Group";
  contact
    "WG Web:  <https://datatracker.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor:  Dieter Beller
              <mailto:Dieter.Beller@nokia.com>

     Editor:  Sergio Belotti
              <mailto:Sergio.Belotti@nokia.com>

     Editor:  Italo Busi
              <mailto:Italo.Busi@huawei.com>

     Editor:  Haomian Zheng
              <mailto:zhenghaomian@huawei.com>";
  description
    "This module defines Optical Layer 0 types.  This module
     provides groupings that can be applicable to Layer 0
     Fixed Optical Networks (e.g., CWDM (Coarse Wavelength
     Division Multiplexing) and DWDM (Dense Wavelength Division
     Multiplexing)) and flexi-grid optical networks.

     Copyright (c) 2025 IETF Trust and the persons identified
     as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with
     or without modification, is permitted pursuant to, and
     subject to the license terms contained in, the Revised
     BSD License set forth in Section 4.c of the IETF Trust's
     Legal Provisions Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

// RFC Ed.: replace XXXX with actual RFC number and remove
// this note

// replace the revision date with the module publication date
// the format is (year-month-day)
  revision 2025-06-06 {
    description
      "To be updated";
    reference
      "RFC XXXX: A YANG Data Model for Layer 0 Types";
  }

  revision 2021-08-13 {
    description
      "Initial version";
    reference
      "RFC 9093: A YANG Data Model for Layer 0 Types";
  }

/*
 * Identities
 */

  identity l0-grid-type {
    description
      "Layer 0 grid type";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable 
      (LSC), Label Switching Routers,

       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

    identity wson-grid-cwdm {
      base l0-grid-type;
      description
        "CWDM grid";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
        CWDM wavelength grid";
    }

    identity wson-grid-dwdm {
      base l0-grid-type;
      description
        "DWDM grid";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable 
        (LSC), Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity flexi-grid-dwdm {
      base l0-grid-type;
      description
        "Flexi-grid";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
        Switch Capable (LSC) Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity cwdm-ch-spc-type {
    description
      "CWDM channel-spacing type";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,
       
       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

    identity cwdm-20nm {
      base cwdm-ch-spc-type;
      description
        "20nm channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,
        
        ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
        CWDM wavelength grid";
    }

  identity dwdm-ch-spc-type {
    description
      "DWDM channel-spacing type";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

    identity dwdm-100ghz {
      base dwdm-ch-spc-type;
      description
        "100 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity dwdm-50ghz {
      base dwdm-ch-spc-type;
      description
        "50 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity dwdm-25ghz {
      base dwdm-ch-spc-type;
      description
        "25 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity dwdm-12p5ghz {
      base dwdm-ch-spc-type;
      description
        "12.5 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity flexi-ch-spc-type {
    status deprecated;
    description
      "Flexi-grid channel-spacing type";
  }

    identity flexi-ch-spc-6p25ghz {
      base flexi-ch-spc-type;
      status deprecated;
      description
        "6.25 GHz channel spacing";
    }

  identity flexi-ncfg-type {
    description
      "Flexi-grid Nominal Central Frequency Granularity (NCFG) 
      type";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

      ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
      DWDM frequency grid";
  }

    identity flexi-ncfg-6p25ghz {
      base flexi-ncfg-type;
      description
        "6.25 GHz Nominal Central Frequency Granularity (NCFG)";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
        Switch Capable (LSC) Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity flexi-slot-width-granularity {
    description
      "Flexi-grid slot width granularity";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

      ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
      DWDM frequency grid";
  }

    identity flexi-swg-12p5ghz {
      base flexi-slot-width-granularity;
      description
        "12.5 GHz slot width granularity";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
        Switch Capable (LSC) Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity modulation {
    description "base identity for modulation type";
  }

    identity DPSK {
      base modulation;
      description
        "DPSK (Differential Phase Shift Keying) modulation";
    }

    identity QPSK {
      base modulation;
      description
        "QPSK (Quadrature Phase Shift Keying) modulation";
    }

    identity DP-QPSK {
      base modulation;
      description
        "DP-QPSK (Dual Polarization Quadrature
        Phase Shift Keying) modulation";
    }

    identity QAM8 {
      base modulation;
      description
        "8QAM (8 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM8 {
      base modulation;
      description
        "DP-QAM8 (8 symbols Dual Polarization Quadrature Amplitude
        Modulation)";
    }

    identity QAM16 {
      base modulation;
      description
        "QAM16 (16 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM16 {
      base modulation;
      description
        "DP-QAM16 (16 symbols Dual Polarization Quadrature Amplitude 
        Modulation)";
    }

    identity QAM32 {
      base modulation;
      description
        "QAM32 (32 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM32 {
      base modulation;
      description
        "DP-QAM32 (32 symbols Dual Polarization Quadrature Amplitude
        Modulation)";
    }

    identity QAM64 {
      base modulation;
      description
        "QAM64 (64 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM64 {
      base modulation;
      description
        "DP-QAM64 (64 symbols Dual Polarization Quadrature Amplitude
        Modulation)";
    }

  identity fec-type {
    description
      "Base identity from which specific FEC
      (Forward Error Correction) type identities are derived.";
  }

    identity g-fec {
      base fec-type;
      description
        "Generic Forward Error Correction (G-FEC).";
      reference
        "ITU-T G.975 v2.0 (10/2000): Forward error correction for 
        submarine systems.";
    }

    identity super-fec {
      base fec-type;
      description
        "Super Forward Error Correction (S-FEC).";
      reference
        "ITU-T G.975.1 v1.2 (07/2013): Forward error correction for 
        high bit-rate DWDM submarine systems.";
    }

    identity no-fec {
      base fec-type;
      description
        "No FEC";
    }

    identity sc-fec {
      base fec-type;
      description
        "Staircase Forward Error Correction (SC-FEC).";
      reference
        "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach 
        interface.";
    }

    identity o-fec {
      base fec-type;
      description
        "Open Forward Error Correction (O-FEC) which reuses the 
        Bose, Chaudhuri and Hocquenghem (BCH) FEC.";
      reference
        "Clause 16.4.4 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces;

        Annex E of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces.";
    }

    identity c-fec {
      base fec-type;
      description
        "Concatenated FEC (C-FEC) that combines an outer Staircase 
        Forward Error Correction (SC-FEC) code and an inner 
        double-extended SD-FEC (128,119) Hamming code.
        
        More details are provided in clause 15/G.709.3 where it is 
        called DSH instead of concatenated FEC.";
      reference
        "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach 
        interface;
        
        Annex D of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces;
        
        Clause 15 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces.";
    }

  identity line-coding {
    description
      "Base identity to defined the bit rate/line coding of optical 
      tributary signals.";
    reference 
      "Section 7.1.2 of ITU-T G.698.2 v3.0 (11/2018).";
  }  

    identity line-coding-NRZ-2p5G {
      base line-coding;
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the optical tributary signal class NRZ 2.5G";
      reference 
        "Section 3.2.6 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-NRZ-OTU1 {
      base line-coding;
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the Optical channel Transport Unit order 1 (OTU1) optical 
        tributary signals";
      reference 
        "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-NRZ-10G {
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the optical tributary signal class NRZ 10G";
      reference 
        "Section 3.2.7 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-NRZ-OTU2 {
      base line-coding;
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the Optical channel Transport Unit order 2 (OTU2) optical 
        tributary signals";
      reference 
        "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-OTL4.4-SC {
      base line-coding;
      description
        "The bit rate/line coding used by optical tributary 
        signals carrying a 100G Optical Transport Unit order 4 
        (OTU4) with Staircase Forward Error Correction (SC FEC) 
        from a group of four Optical Transport Lanes (OTL).";
      reference 
        "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018).";
    }

    identity line-coding-FOIC1.4-SC {
      base line-coding;
      description
        "The bit rate/line coding used by optical tributary signals 
        carrying a FlexO Interface of order C1 with 4 lanes 
        (FOIC1.1) with Staircase Forward Error Correction 
        (SC FEC).";
      reference 
        "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018).";
    }

  identity wavelength-assignment {
    description
      "Wavelength selection base";
    reference
      "RFC 7689: Signaling Extensions for Wavelength Switched 
      Optical Networks";
  }

    identity first-fit-wavelength-assignment {
      base wavelength-assignment;
      description
        "All the available wavelengths are numbered,
        and this WA (Wavelength Assignment) method chooses
        the available wavelength with the lowest index";
      reference
        "RFC 7689: Signaling Extensions for Wavelength Switched 
        Optical Networks";
    }

    identity random-wavelength-assignment {
      base wavelength-assignment;
      description
        "This WA method chooses an available
        wavelength randomly";
      reference
        "RFC 7689: Signaling Extensions for Wavelength Switched 
        Optical Networks";
    }

    identity least-loaded-wavelength-assignment {
      base wavelength-assignment;
      description
        "This WA method selects the wavelength that
        has the largest residual capacity on the most loaded
        link along the route (in multi-fiber networks)";
      reference
        "RFC 7689: Signaling Extensions for Wavelength Switched 
        Optical Networks";
    }

    identity lower-first-wavelength-assignment {
      base wavelength-assignment;
      description
        "Allocate wavelengths in ascending order, beginning from the
        lowest frequency and progressing toward the highest frequency
        within the permissible frequency range.";
    }

    identity upper-first-wavelength-assignment {
      base wavelength-assignment;
      description
        "Allocate wavelengths in decending order, beginning from the
        highest frequency and progressing toward the lowest frequency
        within the permissible frequency range.";
    }

  identity type-power-mode {
    description
      "power equalization mode used within the 
       OMS and its elements";
  }

    identity power-spectral-density {
      base type-power-mode;
      description
        "all elements must use power spectral density (W/Hz)";
    }

    identity carrier-power {
      base type-power-mode;
      description
        "all elements must use power (dBm)";
    }

  identity switching-wson-lsc {
    base te-types:switching-lsc;
    description
      "Wavelength Switched Optical Network Lambda-Switch Capable
      (WSON-LSC).";
    reference
      "Section 3 of RFC 7688: GMPLS OSPF Enhancement for Signal and
      Network Element Compatibility for Wavelength Switched Optical
      Networks";
  }

  identity switching-flexi-grid-lsc {
    base te-types:switching-lsc;
    description
      "Flexi-grid Lambda-Switch Capable (Flexi-Grid-LSC).";
    reference
      "Section 4.1 of RFC 8363: GMPLS OSPF-TE Extensions in Support
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
      Networks";
  }

/*
 * Typedefs
 */

  typedef dwdm-n {
    type int16;
    description
      "The given value 'N' is used to determine the nominal central
       frequency.

       The nominal central frequency, 'f', is defined by:
         f = 193100.000 GHz + N x channel spacing (measured in GHz),

       where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor
       frequency' for transmission over the DWDM grid, and where
       'channel spacing' is defined by the dwdm-ch-spc-type.";
    reference
      "RFC6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  typedef cwdm-n {
    type int16;
    description
      "The given value 'N' is used to determine the nominal central
       wavelength.

       The nominal central wavelength is defined by:
         Wavelength = 1471 nm + N x channel spacing (measured in nm)

       where 1471 nm is the conventional 'anchor wavelength' for
       transmission over the CWDM grid, and where 'channel spacing'
       is defined by the cwdm-ch-spc-type.";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

  typedef flexi-n {
    type int16;
    description
      "The given value 'N' is used to determine the nominal central
       frequency.

       The nominal central frequency, 'f', is defined by:
         f = 193100.000 GHz + N x NCFG (measured in GHz),

       where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor
       frequency' for transmission over the DWDM grid, and where
       NCFG is defined by the flexi-ncfg-type, or by the deprecated 
       flexi-ch-spc-type.";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  typedef flexi-m {
    type uint16;
    description
      "The given value 'M' is used to determine the slot width.

       A slot width is defined by:
         slot width = M x SWG (measured in GHz),

       where SWG is defined by the flexi-slot-width-granularity.";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  typedef standard-mode {
    type string;
    description
      "Identifies an ITU-T G.698.2 standard application code.

      It MUST be a string with a format that follows the 
      nomenclature defined in section 5.3 of ITU-T G.698.2.";
    reference
      "ITU-T G.698.2 (11/2018)";
  }

  typedef organization-identifier {
    type string;
    description
      "vendor/organization identifier that uses a private mode
      out of already defined in G.698.2 ITU-T application-code";
    reference
      "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
      Impairment-aware Topology.";
  }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC

  typedef operational-mode {
    type string;
    description
      "Identifies an organization (e.g., vendor) specific mode.
      
      The format of the string has to be defined by the 
      organization which is responsible for defining the 
      corresponding optical interface specification.";
    reference
      "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
      Impairment-aware Topology.";
  }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC

  typedef frequency-thz {
    type decimal64 {
      fraction-digits 9;
    }
    units "THz";
    description
      "The DWDM frequency in THz, e.g., 193.112500000";
  }

  typedef frequency-ghz {
    type decimal64 {
      fraction-digits 6;
    }
    units "GHz";
    description
      "The DWDM frequency in GHz, e.g., 193112.500000";
  }    

  typedef snr {
    type decimal-2;
    units "dB@0.1nm";
    description
      "(Optical) Signal to Noise Ratio measured over 0.1 nm
      resolution bandwidth";
    reference
      "ITU-T G.977.1 (02/2021): Transverse compatible dense
      wavelength division multiplexing applications for repeatered
      optical fibre submarine cable systems";
  }

  typedef snr-or-null {
    type union {
      type snr;
      type empty;
    }
    description
      "(Optical) Signal to Noise Ratio measured over 0.1 nm
      resolution bandwidth, when known, or an empty value when
      unknown.";
  }

  typedef fiber-type {
    type enumeration {
      enum G.652 {
        description
          "G.652 Standard Singlemode Fiber";                 
      }
      enum G.654 {
        description
          "G.654 Cutoff Shifted Fiber";
      }
      enum G.653 {
        description "G.653 Dispersion Shifted Fiber";
      }
      enum G.655 {
        description "G.655 Non-Zero Dispersion Shifted Fiber";
      }
      enum G.656 {
        description
          "G.656 Non-Zero Dispersion for Wideband Optical Transport";
      }
      enum G.657 {
        description
          "G.657 Bend-Insensitive Fiber";
      }
    }
    description
      "ITU-T based fiber-types";
  }

  typedef decimal-2 {
    type decimal64 {
      fraction-digits 2;
    }
    description
      "A decimal64 value with two digits.";
  }

  typedef decimal-2-or-null {
    type union {
      type decimal-2;
      type empty;
    }
    description
      "A decimal64 value with two digits, when the value is known or
      an empty value when the value is not known.";
  }

  typedef power-gain {
    type decimal-2 {
      range "0..max";
    }
    units "dB";
    description
      "The gain in dB.";
  }

  typedef power-gain-or-null {
    type union {
      type power-gain;
      type empty;
    }
    description
      "The gain in dB, when it is known or an empty 
      value when the power gain/loss is not known.";
  }

  typedef power-loss {
    type decimal-2 {
      range "0..max";
    }
    units "dB";
    description
      "The power attenuation in dB.";
  }

  typedef power-loss-or-null {
    type union {
      type power-loss;
      type empty;
    }
    description
      "The power attenuation in dB, when it is known or an empty 
      value when the loss is not known.";
  }

  typedef power-ratio {
    type decimal-2;
    units "dB";
    description
      "The power difference in dB.";
  }

  typedef power-ratio-or-null {
    type union {
      type power-ratio;
      type empty;
    }
    description
      "The power difference in dB, when it is known or an empty 
      value when the difference is not known.";
  }

  typedef power-dbm {
    type decimal-2;
    units "dBm";
    description
      "The power in dBm.";
  }

  typedef power-dbm-or-null {
    type union {
      type power-dbm;
      type empty;
    }
    description
      "The power in dBm, when it is known or an empty value when the
      power is not known.";
  }

  typedef decimal-5 {
    type decimal64 {
      fraction-digits 5;
    }
    description
      "A decimal64 value with five digits.";
  }

  typedef decimal-5-or-null {
    type union {
      type decimal-5;
      type empty;
    }
    description
      "A decimal64 value with five digits, when the value is known 
      or an empty value when the value is not known.";
  }

  typedef psd {
    type decimal64 {
      fraction-digits 16;
    }
    units "W/Hz";
    description
      "The power spectral density (PSD).
      
      Typical value : 3.9 E-14, resolution 0.1nW/MHz.";
    reference
      "ITU-T G.9700 (07/2019): Fast access to subscriber terminals
      (G.fast) - Power spectral density specification";
  }

  typedef psd-or-null {
    type union {
      type psd;
      type empty;
    }
    description
      "The power spectral density (PSD), when it is known or an
      empty value when the PSD is not known.";
  }

  typedef decimal-18 {
    type decimal64 {
      fraction-digits 18;
    }
    description
      "A decimal64 value with eighteen digits.";
  }

  typedef decimal-18-or-null {
    type union {
      type decimal-18;
      type empty;
    }
    description
      "A decimal64 value with eighteen digits, when the value is
      known or an empty value when the value is not known.";
  }

/*
 * Groupings
 */

  grouping wdm-label-start-end {
    description
      "The WDM label-start or label-end used to specify DWDM and
       CWDM label range.";

    choice grid-type {
      description
        "Label for fixed & flexi-DWDM or CWDM grid";
      case fixed-dwdm {
        leaf dwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type dwdm-n;
          description
            "The given value 'N' is used to determine the
             nominal central frequency.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf cwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type cwdm-n;
          description
            "The given value 'N' is used to determine the nominal
             central wavelength.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case flexi-grid {
        uses flexi-grid-label-start-end;
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wdm-label-step {
    description
      "Label step information for fixed & flexi-DWDM or CWDM grid";
    choice l0-grid-type {
      description
        "Grid type: DWDM, CWDM, etc.";
      case fixed-dwdm {
        leaf wson-dwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type identityref {
            base dwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (GHz), e.g., 100.000,
             50.000, 25.000, or 12.500 GHz for DWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf wson-cwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type identityref {
            base cwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (nm), i.e., 20 nm
             for CWDM, which is the only value defined for CWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case flexi-grid {
        uses flexi-grid-label-step;
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,
       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid,
       RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
       Dense Wavelength Division Multiplexing (DWDM) Networks";
  }

  grouping wdm-label-hop {
    description
      "Generic label-hop information for fixed & flexi-DWDM or
       CWDM grid";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case fixed-dwdm {
        choice fixed-single-or-super-channel {
          description
            "single or super channel";
          case single {
            leaf dwdm-n {
              type dwdm-n;
              description
                "The given value 'N' is used to determine the
                 nominal central frequency.";
            }
          }
          case multi {
            leaf-list subcarrier-dwdm-n {
              type dwdm-n;
              min-elements 2;
              description
                "The given values 'N' are used to determine the
                 nominal central frequency for each subcarrier
                 channel.";
              reference
                "ITU-T G.694.1 (10/2020): Spectral grids for WDM
                applications: DWDM frequency grid";
            }
          }
        }
      }
      case cwdm {
        leaf cwdm-n {
          type cwdm-n;
          description
            "The given value 'N' is used to determine the nominal
             central wavelength.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case flexi-grid {
        uses flexi-grid-label-hop;
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wdm-label-range-info {
    description
      "WDM label range related information";
    uses l0-label-range-info;
    container flexi-grid {
      when "derived-from-or-self(../grid-type,
          \"flexi-grid-dwdm\")" {
        description
          "Applicable only when the grid type is flexi-grid-dwdm.";
      }
      description
        "flexi-grid definition";
      leaf slot-width-granularity {
        type identityref {
          base flexi-slot-width-granularity;
        }
        default "flexi-swg-12p5ghz";
        description
          "Minimum space between slot widths. Default is 12.500
           GHz.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
      leaf min-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        default "1";
        description
          "A multiplier of the slot width granularity, indicating
           the minimum slot width supported by an optical port.

           Minimum slot width is calculated by:
             Minimum slot width (GHz) =
               min-slot-width-factor * slot-width-granularity.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
      leaf max-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        must '. >= ../min-slot-width-factor' {
          error-message
            "Maximum slot width must be greater than or equal to
             minimum slot width.";
        }
        description
          "A multiplier of the slot width granularity, indicating
           the maximum slot width supported by an optical port.

           Maximum slot width is calculated by:
             Maximum slot width (GHz) =
               max-slot-width-factor * slot-width-granularity

           If specified, maximum slot width must be greater than or
           equal to minimum slot width.  If not specified, maximum
           slot width is equal to minimum slot width.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
    }
  }

  grouping wson-label-start-end {
    description
      "The WSON label-start or label-end used to specify WSON label
       range.";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case dwdm {
        leaf dwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type dwdm-n;
          description
            "The central frequency of DWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf cwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type cwdm-n;
          description
            "Channel wavelength computing input.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wson-label-hop {
    description
      "Generic label-hop information for WSON";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case dwdm {
        choice single-or-super-channel {
          description
            "single or super channel";
          case single {
            leaf dwdm-n {
              type dwdm-n;
              description
                "The given value 'N' is used to determine the
                 nominal central frequency.";
            }
          }
          case super {
            leaf-list subcarrier-dwdm-n {
              type dwdm-n;
              description
                "The given values 'N' are used to determine the
                 nominal central frequency for each subcarrier
                 channel.";
              reference
                "ITU-T G.694.1 (10/2020): Spectral grids for WDM
                applications: DWDM frequency grid";
            }
          }
        }
      }
      case cwdm {
        leaf cwdm-n {
          type cwdm-n;
          description
            "The given value 'N' is used to determine the nominal
             central wavelength.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping l0-label-range-info {
    description
      "Information about Layer 0 label range.";
    leaf grid-type {
      type identityref {
        base l0-grid-type;
      }
      description
        "Grid type";
    }
    leaf priority {
      type uint8;
      description
        "Priority in Interface Switching Capability Descriptor
         (ISCD).";
      reference
        "RFC 4203: OSPF Extensions in Support of Generalized
         Multi-Protocol Label Switching (GMPLS)";
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wson-label-step {
    description
      "Label step information for WSON";
    choice l0-grid-type {
      description
        "Grid type: DWDM, CWDM, etc.";
      case dwdm {
        leaf wson-dwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type identityref {
            base dwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (GHz), e.g., 100.000,
             50.000, 25.000, or 12.500 GHz for DWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf wson-cwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type identityref {
            base cwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (nm), i.e., 20 nm
             for CWDM, which is the only value defined for CWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

  grouping flexi-grid-label-start-end {
    description
      "The flexi-grid label-start or label-end used to specify
       flexi-grid label range.";
    leaf flexi-n {
      type flexi-n;
      description
        "The given value 'N' is used to determine the nominal
        central frequency.

        As described in section 3.1 of RFC 8363, the range of 
        available nominal central frequencies are advertised for 
        m=1, which means that for an available central frequency n, 
        the frequency slot from central frequency n-1 to central 
        frequency n+1 is available.";
    }
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,
      
      RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid 
      Dense Wavelength Division Multiplexing (DWDM) Networks";
  }

  grouping flexi-grid-frequency-slot {
    description
      "Flexi-grid frequency slot grouping.";
    uses flexi-grid-label-start-end;
    leaf flexi-m {
      type flexi-m;
      description
        "The given value 'M' is used to determine the slot width.";
    }
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers";
  }

  grouping flexi-grid-label-hop {
    description
      "Generic label-hop information for flexi-grid";
    choice single-or-super-channel {
      description
        "single or super channel";
      case single {
        uses flexi-grid-frequency-slot;
      }
      case super {
        status deprecated;
        list subcarrier-flexi-n {
          key "flexi-n";
          status deprecated;
          uses flexi-grid-frequency-slot {
            status deprecated;
          }
          description
            "List of subcarrier channels for flexi-grid super
             channel.";
        }
      }
      case multi {
        container frequency-slots {
          description
            "The top level container for the list of frequency 
            slots used for flexi-grid super channel.";
          list frequency-slot {
            key "flexi-n";
            min-elements 2;
            uses flexi-grid-frequency-slot;
            description
              "List of frequency slots used for flexi-grid super 
              channel.";
          }
        }
      }
    }
    reference
      "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid 
      Dense Wavelength Division Multiplexing (DWDM) Networks";
  }

  grouping flexi-grid-label-range-info {
    description
      "Flexi-grid-specific label range related information";
    uses l0-label-range-info;
    container flexi-grid {
      description
        "flexi-grid definition";
      leaf slot-width-granularity {
        type identityref {
          base flexi-slot-width-granularity;
        }
        default "flexi-swg-12p5ghz";
        description
          "Minimum space between slot widths. Default is 12.500
           GHz.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of 
          Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
          Networks";
      }
      leaf min-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        default "1";
        description
          "A multiplier of the slot width granularity, indicating
           the minimum slot width supported by an optical port.

           Minimum slot width is calculated by:
             Minimum slot width (GHz) =
               min-slot-width-factor * slot-width-granularity.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
      leaf max-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        must '. >= ../min-slot-width-factor' {
          error-message
            "Maximum slot width must be greater than or equal to
             minimum slot width.";
        }
        description
          "A multiplier of the slot width granularity, indicating
           the maximum slot width supported by an optical port.

           Maximum slot width is calculated by:
             Maximum slot width (GHz) =
               max-slot-width-factor * slot-width-granularity

           If specified, maximum slot width must be greater than or
           equal to minimum slot width.  If not specified, maximum
           slot width is equal to minimum slot width.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
    }
  }

  grouping flexi-grid-label-step {
    description
      "Label step information for flexi-grid";
    leaf flexi-grid-channel-spacing {
      type identityref {
        base flexi-ch-spc-type;
      }
      default "flexi-ch-spc-6p25ghz";
      status deprecated;
      description
        "Label-step is the nominal central frequency granularity
         (GHz), e.g., 6.25 GHz.";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
         Switch Capable (LSC) Label Switching Routers";
    }
    leaf flexi-ncfg {
      type identityref {
        base flexi-ncfg-type;
      }
      default "flexi-ncfg-6p25ghz";
      description
        "Label-step is the nominal central frequency granularity
         (GHz), e.g., 6.25 GHz.";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
         Switch Capable (LSC) Label Switching Routers";
    }
    leaf flexi-n-step {
      type uint8;
      description
        "This attribute defines the multiplier for the supported
         values of 'N'.

         For example, given a grid with a nominal central frequency
         granularity of 6.25 GHz, the granularity of the supported
         values of the nominal central frequency could be 12.5 GHz.
         In this case, the values of flexi-n should be even and this
         constraint is reported by setting the flexi-n-step to 2.

         This attribute is also known as central frequency
         granularity in RFC 8363.";
      reference
        "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
         Dense Wavelength Division Multiplexing (DWDM) Networks";
    }
  }

  grouping transceiver-capabilities {
    description
      "This grouping is intended to be used for reporting the
      capabilities of a transceiver.

      When this grouping is used, the explicit-mode container shall
      be augmented with a leafref to an explicit mode template with
      the proper XPath which depends from where this grouping is
      actually used.

      See for example the ietf-optical-impairment-topology YANG
      module in RFC YYYY.";
    reference
        "RFC YYYY: A YANG Data Model for Optical Impairment-aware
        Topology.";
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC
    container supported-modes {
      presence
        "When present, it indicates that the modes supported by a 
        transceiver are reported.";
      config false;
      description
        "The top level container for the list supported 
        transceiver's modes.";
      list supported-mode {
        key "mode-id";
        config false;
        min-elements 1;
        description "The list of supported transceiver's modes.";
        leaf mode-id {
          type string { 
            length "1..255";
          }
          description "ID for the supported transceiver's mode.";
        }
        choice mode {
          config false;
          mandatory true;
          description
            "Indicates whether the transceiver's mode is a standard
              mode, an organizational mode or an explicit mode.";
          case G.698.2 {
            uses standard-mode;
            uses common-standard-organizational-mode;
            uses common-all-modes;
          }
          case organizational-mode {
            container organizational-mode {
              config false;
              description
                "The set of attributes for an organizational mode";
              uses organizational-mode;
              uses common-standard-organizational-mode;
              uses common-all-modes;
            }  // container organizational-mode
          }
          case explicit-mode {
            container explicit-mode {
              config false;
              description
                "The set of attributes for an explicit mode.";
              uses common-all-modes;
              container compatible-modes {
                description
                  "Container for all the standard and organizational
                  modes supported by the transceiver's explicit
                  mode.";
                leaf-list supported-application-code {
                  type leafref {
                    path "../../../../supported-mode/mode-id";
                  }
                  must "../../../../"
                      + "supported-mode[mode-id=current()]/"
                      + "standard-mode" {
                    description
                      "The pointer is only for application codes
                      supported by transceiver."; 
                  }
                  description
                    "List of pointers to the application codes
                    supported by the transceiver's explicit mode.";
                }
                leaf-list supported-organizational-mode {
                  type leafref {
                    path "../../../../supported-mode/mode-id";
                  }
                  must "../../../../"
                      + "supported-mode[mode-id=current()]/"
                      + "organizational-mode" {
                    description
                      "The pointer is only for organizational modes
                      supported by transceiver.";
                  }
                  description
                    "List of pointers to the organizational modes
                      supported by the transceiver's explicit mode.";
                }
              }  // container compatible-modes
            }  // container explicit-mode
          } // end of case explicit-mode
        } // end of choice
      }  // list supported-mode
    }  // container supported-modes
  }  // grouping transceiver-capabilities

  grouping standard-mode {
    description
      "ITU-T G.698.2 standard mode that guarantees interoperability.
       It must be an string with the following format:
       B-DScW-ytz(v) where all these attributes are conformant
       to the ITU-T recomendation";

    leaf standard-mode {
      type standard-mode;
      config false;
      description
        "G.698.2 standard mode";
    }
  }

  grouping organizational-mode {
    description
      "Transponder operational mode supported by organizations or
       vendor";

    leaf operational-mode {
      type operational-mode;
      config false;
      description
        "configured organization- or vendor-specific
         application identifiers (AI) supported by the transponder";
    }
    leaf organization-identifier {
      type organization-identifier;
      config false;
      description
        "organization identifier that uses organizational
         mode";
    }
  }

  grouping penalty-value {
    description
      "A common definition of the OSNR penalty value used for
       describing multiple penalty types (.e.g, CD, PMD, PDL).";

    leaf penalty-value {
      type union {
        type decimal-2 {
          range "0..max";
        }
        type empty;
      }
      units "dB";
      config false;
      mandatory true;
      description
        "The OSNR penalty associated with the related optical 
        impairment at the receiver, when the value is known or an 
        empty value when the value is not known.";
    }
  }

  grouping explicit-mode {
    description
      "Attributes capabilities related to explicit transceiver's
      mode.
      
      This grouping also contains the list of attributes related to
      optical impairment limits for explicit mode (min OSNR, max PMD,
      max CD, max PDL, Q-factor limit, etc.).

      In case of standard and operational mode the attributes are
      implicit.";
    leaf line-coding-bitrate {
      type identityref {
        base line-coding;
      }
      config false;
      description
        "Bit rate/line coding of the optical tributary signal.";
      reference 
        "ITU-T G.698.2 section 7.1.2";
    }
    leaf bitrate {
      type uint16;
      units "Gbit/sec";
      config false;
      description
        "The gross bitrate (e.g., 100, 200) of the optical tributary
        signal.";
    }
    leaf max-diff-group-delay  {
      type decimal-2;
      units "ps";
      config false;
      description
        "Maximum Differential group delay of this mode for this 
        lane";
    }
    leaf max-chromatic-dispersion {
      type decimal-2 {
        range "0..max";
      }
      units "ps/nm";
      config false;
      description
        "Maximum acceptable accumulated chromatic dispersion (CD) 
        on the receiver at Rx-power reference point
        (rx-ref-channel-power) and in absence of other impairments";
      reference
        "Section 2.6.4 of RFC YYYY: A YANG Data Model for Optical
        Impairment-aware Topology.";
    }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC
    list cd-penalty {
      key cd-value;
      config false;
      description
        "Optional penalty associated with a given accumulated
        chromatic dispersion (CD) value measured in
        absence of other impairments.

        This list of pair CD and OSNR penalty can be used to
        sample the function OSNR penalty = f(CD).";
      leaf cd-value {
        type decimal-2;
        units "ps/nm";
        config false;
        mandatory true;
        description
          "The Chromatic Dispersion (CD).";
      }
      uses penalty-value;
      reference
        "Section 2.6.4 of RFC YYYY: A YANG Data Model for Optical
        Impairment-aware Topology.";
    }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC
    leaf max-polarization-mode-dispersion {
      type decimal-2 {
        range "0..max";
      }
      units "ps";
      config false;
      description
        "Maximum acceptable accumulated polarization mode
         dispersion (PMD) on the receiver at Rx-power reference point
         (rx-ref-channel-power) and in absence of other impairments";
      reference
        "ITU-T G.666 (02/2011): Characteristics of polarization
        mode dispersion compensators and of receivers that
        compensate for polarization mode dispersion

        Section 2.6.4 of RFC YYYY: A YANG Data Model for Optical
        Impairment-aware Topology.";
    }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC
    list pmd-penalty {
      key pmd-value;
      config false;
      description
        "Optional penalty associated with a given accumulated
        polarization mode dispersion (PMD) value measured in
        absence of other impairments.

        This list of pair PMD and OSNR penalty can be used to
        sample the function OSNR penalty = f(PMD).";
      leaf pmd-value {
        type decimal-2 {
          range "0..max";
        }
        units "ps";
        config false;
        mandatory true;
        description
          "The Polarization Mode Dispersion (PMD).";
      }
      uses penalty-value;
      reference
        "Section 2.6.4 of RFC YYYY: A YANG Data Model for Optical
        Impairment-aware Topology.";
    }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC
    leaf max-polarization-dependent-loss {
      type power-loss-or-null;
      config false;
      mandatory true;
      description
        "Maximum acceptable accumulated polarization dependent
         loss (PDL) on the receiver at Rx-power reference point
         (rx-ref-channel-power) and in absence of other impairments";
      reference
        "Section 2.6.4 of RFC YYYY: A YANG Data Model for Optical
        Impairment-aware Topology.";
    }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC
    list pdl-penalty {
      key pdl-value;
      config false;
      description
        "Optional penalty associated with a given accumulated 
        polarization dependent loss (PDL) value, measured in
        absence of other impairments.

        This list of pair PDL and OSNR penalty can be used to
        sample the function OSNR penalty = f(PDL).";
      leaf pdl-value {
        type power-loss;
        config false;
        mandatory true;
        description
          "Maximum acceptable accumulated polarization dependent
          loss (PDL).";
      }
      uses penalty-value;
      reference
        "Section 2.6.4 of RFC YYYY: A YANG Data Model for Optical
        Impairment-aware Topology.";
    }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC
    leaf available-modulation-type {
      type identityref {
        base modulation;
      }
      config false;
      description
        "Modulation type the specific transceiver in the list
         can support";
    }
    leaf min-OSNR {
      type snr;
      units "dBm";
      config false;
      description
        "min OSNR measured over 0.1 nm resolution bandwidth:
        if received OSNR at Rx-power reference point
        (rx-ref-channel-power) is lower than MIN-OSNR, an increased 
        level of bit-errors post-FEC needs to be expected";
    }
    leaf rx-ref-channel-power {
      type power-dbm;
      config false;
      description
        "The channel power used as reference for defining penalties 
        and min-OSNR";
    }
    list rx-channel-power-penalty {
      key rx-channel-power-value;
      config false;
      description
        "Optional penalty associated with a received power
        lower than rx-ref-channel-power.

        This list of pair power and OSNR penalty can be used to
        sample the function OSNR penalty = f(rx-channel-power).";
      leaf rx-channel-power-value {
        type power-dbm;
        units "dBm";
        config false;
        mandatory true;
        description
          "The Received Power.";
      }
      uses penalty-value;
    }
    leaf min-Q-factor {
      type decimal-2;
      units "dB";
      config false;
      description "min Qfactor at FEC threshold";
    }
    leaf available-baud-rate {
      type decimal64 {
        fraction-digits 1;
      }
      units "Bd";
      config false;
      description
        "Baud-rate the specific transceiver in 
        the list can support.
         Baud-rate is the unit for
         symbol rate or modulation rate 
         in symbols per second or
         pulses per second. 
         It is the number of distinct symbol
         changes (signal events) made to the 
         transmission medium
         per second in a digitally 
         modulated signal or a line code";
    }
    leaf roll-off {
      type decimal64 {
        fraction-digits 4;
        range "0..1";
      }
      config false;
      description 
        "the roll-off factor (beta with values from 0 to 1) 
        identifies how the real signal shape exceed 
        the baud rate. If=0 it is exactly matching 
        the baud rate.If=1 the signal exceeds the 
        50% of the baud rate at each side.";             
    }
    leaf min-carrier-spacing {
      type frequency-ghz;
      config false;
      description
        "This attribute specifies the minimum nominal difference
        between the carrier frequencies of two homogeneous OTSis
        (which have the same optical characteristics but the central
        frequencies) such that if they are placed next to each other
        the interference due to spectrum overlap between them can be
        considered negligible.

        In case of heterogeneous OTSi it is up to path computation
        engine to determine the minimum distance between the carrier
        frequency of the two adjacent OTSi.";
    }
    leaf available-fec-type {
      type identityref {
        base fec-type;
      }
      config false;
      description "Available FEC";
    }
    leaf fec-code-rate {
      type decimal64 {
        fraction-digits 8;
        range "0..max";
      }
      config false;
      description "FEC-code-rate";
    }
    leaf fec-threshold {
      type decimal64 {
        fraction-digits 8;
        range "0..max";
      }
      config false;
      description
        "Threshold on the BER, for which FEC 
         is able to correct errors";
    }
    leaf in-band-osnr {
      type snr;
      config false;
      description
        "The OSNR defined within the bandwidth of the transmit 
        spectral excursion (i.e.,  between the nominal central 
        frequency of the channel and the -3.0dB points of the 
        transmitter spectrum furthest from the nominal central 
        frequency) measured at reference point Ss.
        
        The in-band OSNR is referenced to an optical bandwidth of 
        0.1nm @ 193.7 THz or 12.5 GHz.";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
    leaf out-of-band-osnr {
      type snr;
      config false;
      description
        "The ratio of the peak transmitter power to the integrated 
        power outside the transmitter spectral excursion.
        
        The spectral resolution of the measurement shall be better 
        than the maximum spectral width of the peak.
        
        The out-of-band OSNR is referenced to an optical bandwidth 
        of 0.1nm @ 193.7 THz or 12.5 GHz";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
    leaf tx-polarization-power-difference {
      type power-ratio;
      config false;
      description
        "The transmitter polarization dependent power difference 
        defined as the power difference between X and Y 
        polarizations";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
    leaf polarization-skew {
      type decimal-2;
      units "ps";
      config false;
      description
        "The X-Y skew, included as a fixed value in the receiver 
        polarization mode dispersion (PMD) tolerance limits.";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
  } // grouping explicit-mode

  grouping common-standard-organizational-mode {
    description
      "Common attributes used by standard and organizational 
      transceiver's modes.";
    
    leaf-list line-coding-bitrate {
      type identityref {
        base line-coding;
      }
      config false;
      description
        "The list of the bit rate/line coding of the optical 
        tributary signal supported by the transceiver.

        Reporting this list is optional when the standard or 
        organization mode supports only one bit rate/line coding.";
      reference 
        "ITU-T G.698.2 section 7.1.2";
    }
  } // grouping common-standard-organizational-mode

  grouping transceiver-tuning-range {
    description
      "Transceiver tuning range (f-min, f-max, f-granularity)";

    leaf min-central-frequency {
      type frequency-thz;
      description
        "This parameter indicates the minimum frequency for the
        transceiver tuning range.";
    }
    leaf max-central-frequency {
      type frequency-thz;
      description
        "This parameter indicates the maximum frequency for the
        transceiver tuning range.";
    }

    leaf transceiver-tunability-granularity {
      type frequency-ghz;
      description
        "This parameter indicates the transceiver frequency fine
        tuning granularity e.g 3.125GHz or 0.001GHz.";
    }
  } // grouping transceiver-tuning-range

  grouping common-all-modes {
    description
      "Common attributes used by all transceiver's modes.";

    container transceiver-tuning-range {
      config false;
      description
        "Transceiver tuning range (f-min, f-max, f-granularity)";
      uses transceiver-tuning-range;
    }

    leaf tx-channel-power-min {
      type power-dbm;
      config false;
      description "The minimum output power of this interface";
    }
    leaf tx-channel-power-max {
      type power-dbm;
      config false;
      description "The maximum output power of this interface";
    } 
    leaf rx-channel-power-min {
      type power-dbm;
      config false;
      description "The minimum input power of this interface";
    }
    leaf rx-channel-power-max {
      type power-dbm;
      config false;
      description "The maximum input power of this interface";
    }
    leaf rx-total-power-max {
      type power-dbm;
      config false;
      description
        "Maximum rx optical power for all the channels.
        
        It is applicable only to multi-channel modes.";
    }
  } // grouping common-all-modes

  grouping common-transceiver-param {
    description
      "The common parameters of an optical transceiver,
      that supplement the configured mode.";

    uses common-transceiver-configured-param;
    uses common-transceiver-readonly-param;
  }

  grouping common-transceiver-configured-param {
    description
      "The configured parameters of an optical transceiver,
      that supplement the configured mode.";

    leaf line-coding-bitrate {
      type identityref {
        base line-coding;
      }
      description
        "Bit rate/line coding of the optical tributary signal.
        
        Support of this attribute is optional when the configured 
        mode supports only one bit rate/line coding.";
      reference 
        "ITU-T G.698.2 section 7.1.2";
    }
    leaf tx-channel-power {
      type power-dbm-or-null;
      description
        "The current channel transmit power, when the value is 
        known or an empty value when the value is not known.
        
        The empty value MUST NOT be used when this attribute is 
        configured.";
    }
  } // grouping for configured transceiver attributes out of mode

  grouping common-transceiver-readonly-param {
    description
      "The common read-only parameters of an optical transceiver,
      that supplement the configured mode.";

    leaf rx-channel-power {
      type power-dbm-or-null;
      config false;
      description
        "The current channel received power, when the value is 
        known or an empty value when the value is not known.";
    }
    leaf rx-total-power {
      type power-dbm-or-null;
      config false;
      description
        "The current total received power, when the value is known 
        or an empty value when the value is not known.";
    }
  } // grouping for read-only transceiver attributes out of mode

  grouping tunnel-attributes {
    description
      "Parameters for Layer0 (WSON or Flexi-Grid) Tunnels.";

    leaf wavelength-assignment {
      type identityref {
        base wavelength-assignment;
      }
      description "Wavelength Allocation Method";
    }
  }

  grouping frequency-range {
    description
      "This grouping defines the lower and upper bounds of a
      frequency range (e.g., a band).
        
      This grouping SHOULD NOT be used to define a frequency slot,
      which SHOULD be defined using the n and m values instead.";
    leaf lower-frequency {
      type frequency-thz;
      mandatory true;
      description
        "The lower frequency boundary of the
        frequency range.";
    }
    leaf upper-frequency {
      type frequency-thz;
      must '. > ../lower-frequency' {
        error-message
          "The upper frequency must be greater than the lower
          frequency.";
      }
      mandatory true;
      description
        "The upper frequency boundary of the
        frequency range.";
    }
  }

  grouping frequency-range-with-identifier {
    description
      "This grouping extends the frequency-range defined in
      ietf-layer0-types with an identifier, which used as a key when
      it is needed to define different properties (e.g., optical
      impairments) for different frequency ranges.";
    leaf frequency-range-id {
      type uint16;
      description
        "The identifier of the frequency range.";
    }
    container frequency-range {
      description
        "The frequency range for which these optical
        impairments apply.";
      uses frequency-range;
    }
  }

  grouping path-constraints {
    description
      "Common attribute for Layer 0 path constraints to be used by
      Layer 0 computation.";
    leaf gsnr-extra-margin {
      type snr {
        range 0..max;
      }
      default 0;
      description
        "An additional margin to be added to the OSNR-min of the
        transceiver when checking the estimated received Generalized
        SNR (GSNR).";
    }
  }

  grouping path-properties {
    description
      "Common attribute for reporting the Layer 0 computed path
      properties.";
    leaf estimated-gsnr {
      type snr;
      config false;
      description
        "The estimate received GSNR for the computed path.";
    }
    leaf estimated-eol-gsnr {
      type snr;
      config false;
      description
        "The estimate received GSNR for the computed path
         degraded at the end of life.";
    }
    leaf estimated-lowest-gsnr {
      type snr;
      config false;
      description
        "The estimate lowest received GSNR for the computed path
         among all possible wavelength channels along the same
         path.";
    }
  }
}
]]></sourcecode></figure>

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

<t>This section is modeled after the template described in Section 3.7
of <xref target="I-D.ietf-netmod-rfc8407bis"/>.</t>

<t>The "ietf-layer0-types" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management
protocols (1) have to use a secure transport layer
(e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
QUIC <xref target="RFC9000"/>) and (2) have
to use mutual authentication.</t>

<t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t>

<t>The YANG module defines a set of identities, types, and
groupings. These nodes are intended to be reused by other YANG
modules. The module by itself does not expose any data nodes that
are writable, data nodes that contain read-only state, or RPCs.
As such, there are no additional security issues related to
the YANG module that need to be considered.</t>

<t>Modules that use the groupings that are defined in this document
should identify the corresponding security considerations.</t>

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

<t>IANA is requested to update the following registration in the "ns" registry
within the "IETF XML Registry" group <xref target="RFC3688"/> to reference this document:</t>

<figure><artwork><![CDATA[
      URI: urn:ietf:params:xml:ns:yang:ietf-layer0-types
      Registrant Contact:  The IESG.
      XML: N/A; the requested URI is an XML namespace.
]]></artwork></figure>

<t>IANA is requested to register the following YANG module in the "YANG Module Names" registry <xref target="RFC6020"/>
within the "YANG Parameters" registry group.</t>

<figure><artwork><![CDATA[
      Name: ietf-layer0-types
      Maintained by IANA? N
      Namespace: urn:ietf:params:xml:ns:yang:ietf-layer0-types
      Prefix: l0-types
      Reference: RFC XXXX
]]></artwork></figure>

<ul empty="true"><li>
  <t>RFC Editor Note: Please replace XXXX with the RFC number assigned to this document and remove this note.</t>
</li></ul>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

<reference anchor="ITU-T_G.666" target="https://www.itu.int/rec/T-REC-G.666">
  <front>
    <title>Characteristics of polarization mode dispersion compensators and of receivers that compensate for polarization mode dispersion"</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2011" month="February"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.666" value=""/>
</reference>
<reference anchor="ITU-T_G.694.1" target="https://www.itu.int/rec/T-REC-G.694.1">
  <front>
    <title>Spectral grids for WDM applications: DWDM frequency grid</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="October"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.694.1" value=""/>
</reference>
<reference anchor="ITU-T_G.694.2" target="https://www.itu.int/rec/T-REC-G.694.2">
  <front>
    <title>Spectral grids for WDM applications: CWDM wavelength grid</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2003" month="December"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.694.2" value=""/>
</reference>
<reference anchor="ITU-T_G.698.2" target="https://www.itu.int/rec/T-REC-G.698.2">
  <front>
    <title>Amplified multichannel dense wavelength division multiplexing applications with single channel optical interfaces</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2018" month="November"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.698.2" value=""/>
</reference>
<reference anchor="ITU-T_G.709" target="https://www.itu.int/rec/T-REC-G.709">
  <front>
    <title>Interfaces for the optical transport network</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="June"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.709" value=""/>
</reference>
<reference anchor="ITU-T_G.709.2" target="https://www.itu.int/rec/T-REC-G.709.2">
  <front>
    <title>OTU4 long-reach interface</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="September"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.709.2, Corrigendum 1" value=""/>
</reference>
<reference anchor="ITU-T_G.709.3" target="https://www.itu.int/rec/T-REC-G.709.3">
  <front>
    <title>Flexible OTN B100G long-reach interfaces</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2022" month="November"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.709.3, Amendment 1" value=""/>
</reference>
<reference anchor="ITU-T_G.959.1" target="https://www.itu.int/rec/T-REC-G.959.1">
  <front>
    <title>Optical transport network physical layer interfaces</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2018" month="July"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.959.1" value=""/>
</reference>
<reference anchor="ITU-T_G.975" target="https://www.itu.int/rec/T-REC-G.975">
  <front>
    <title>Forward error correction for submarine systems</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2000" month="October"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.975" value=""/>
</reference>
<reference anchor="ITU-T_G.975.1" target="https://www.itu.int/rec/T-REC-G.975.1">
  <front>
    <title>Forward error correction for high bit-rate DWDM submarine systems</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2013" month="July"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.975.1, Corrigendum 2" value=""/>
</reference>
<reference anchor="ITU-T_G.977.1" target="https://www.itu.int/rec/T-REC-G.977.1">
  <front>
    <title>Transverse compatible dense wavelength division multiplexing applications for repeatered optical fibre submarine cable systems</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2021" month="February"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.977.1" value=""/>
</reference>
<reference anchor="ITU-T_G.9700" target="https://www.itu.int/rec/T-REC-G.9700">
  <front>
    <title>Fast access to subscriber terminals (G.fast) - Power spectral density specification</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2019" month="July"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.9700" value=""/>
</reference>
<reference anchor="OIF_400ZR" target="https://www.oiforum.com/wp-content/uploads/OIF-400ZR-01.0_reduced2.pdf">
  <front>
    <title>Implementation Agreement 400ZR</title>
    <author >
      <organization>Optical Internetworking Forum</organization>
    </author>
    <date year="2020" month="March"/>
  </front>
  <seriesInfo name="OIF-400ZR-01.0 Implementation Agreement" value=""/>
</reference>


<reference anchor="RFC7950">
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="August" year="2016"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7950"/>
  <seriesInfo name="DOI" value="10.17487/RFC7950"/>
</reference>
<reference anchor="RFC6241">
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
    <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
    <date month="June" year="2011"/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6241"/>
  <seriesInfo name="DOI" value="10.17487/RFC6241"/>
</reference>
<reference anchor="RFC9093">
  <front>
    <title>A YANG Data Model for Layer 0 Types</title>
    <author fullname="H. Zheng" initials="H." surname="Zheng"/>
    <author fullname="Y. Lee" initials="Y." surname="Lee"/>
    <author fullname="A. Guo" initials="A." surname="Guo"/>
    <author fullname="V. Lopez" initials="V." surname="Lopez"/>
    <author fullname="D. King" initials="D." surname="King"/>
    <date month="August" year="2021"/>
    <abstract>
      <t>This document defines a collection of common data types and groupings in the YANG data modeling language. These derived common types and groupings are intended to be imported by modules that model Layer 0 optical Traffic Engineering (TE) configuration and state capabilities such as Wavelength Switched Optical Networks (WSONs) and flexi-grid Dense Wavelength Division Multiplexing (DWDM) networks.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9093"/>
  <seriesInfo name="DOI" value="10.17487/RFC9093"/>
</reference>
<reference anchor="RFC8342">
  <front>
    <title>Network Management Datastore Architecture (NMDA)</title>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
    <author fullname="P. Shafer" initials="P." surname="Shafer"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <author fullname="R. Wilton" initials="R." surname="Wilton"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8342"/>
  <seriesInfo name="DOI" value="10.17487/RFC8342"/>
</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="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="I-D.ietf-teas-rfc8776-update">
   <front>
      <title>Common YANG Data Types for Traffic Engineering</title>
      <author fullname="Italo Busi" initials="I." surname="Busi">
         <organization>Huawei</organization>
      </author>
      <author fullname="Aihua Guo" initials="A." surname="Guo">
         <organization>Futurewei Technologies</organization>
      </author>
      <author fullname="Xufeng Liu" initials="X." surname="Liu">
         <organization>Alef Edge</organization>
      </author>
      <author fullname="Tarek Saad" initials="T." surname="Saad">
         <organization>Cisco Systems Inc.</organization>
      </author>
      <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
         <organization>Individual</organization>
      </author>
      <date day="21" month="February" year="2025"/>
      <abstract>
	 <t>   This document defines a collection of common data types, identities,
   and groupings in YANG data modeling language.  These derived common
   data types, identities and groupings are intended to be imported by
   other modules, e.g., those which model the Traffic Engineering (TE)
   configuration and state capabilities.

   This document obsoletes RFC 8776.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-teas-rfc8776-update-17"/>
   
</reference>
<reference anchor="RFC6205">
  <front>
    <title>Generalized Labels for Lambda-Switch-Capable (LSC) Label Switching Routers</title>
    <author fullname="T. Otani" initials="T." role="editor" surname="Otani"/>
    <author fullname="D. Li" initials="D." role="editor" surname="Li"/>
    <date month="March" year="2011"/>
    <abstract>
      <t>Technology in the optical domain is constantly evolving, and, as a consequence, new equipment providing lambda switching capability has been developed and is currently being deployed.</t>
      <t>Generalized MPLS (GMPLS) is a family of protocols that can be used to operate networks built from a range of technologies including wavelength (or lambda) switching. For this purpose, GMPLS defined a wavelength label as only having significance between two neighbors. Global wavelength semantics are not considered.</t>
      <t>In order to facilitate interoperability in a network composed of next generation lambda-switch-capable equipment, this document defines a standard lambda label format that is compliant with the Dense Wavelength Division Multiplexing (DWDM) and Coarse Wavelength Division Multiplexing (CWDM) grids defined by the International Telecommunication Union Telecommunication Standardization Sector. The label format defined in this document can be used in GMPLS signaling and routing protocols. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6205"/>
  <seriesInfo name="DOI" value="10.17487/RFC6205"/>
</reference>
<reference anchor="RFC7699">
  <front>
    <title>Generalized Labels for the Flexi-Grid in Lambda Switch Capable (LSC) Label Switching Routers</title>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <author fullname="D. King" initials="D." surname="King"/>
    <author fullname="Y. Li" initials="Y." surname="Li"/>
    <author fullname="F. Zhang" initials="F." surname="Zhang"/>
    <date month="November" year="2015"/>
    <abstract>
      <t>GMPLS supports the description of optical switching by identifying entries in fixed lists of switchable wavelengths (called grids) through the encoding of lambda labels. Work within the ITU-T Study Group 15 has defined a finer-granularity grid, and the facility to flexibly select different widths of spectrum from the grid. This document defines a new GMPLS lambda label format to support this flexi-grid.</t>
      <t>This document updates RFCs 3471 and 6205 by introducing a new label format.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7699"/>
  <seriesInfo name="DOI" value="10.17487/RFC7699"/>
</reference>
<reference anchor="RFC7689">
  <front>
    <title>Signaling Extensions for Wavelength Switched Optical Networks</title>
    <author fullname="G. Bernstein" initials="G." role="editor" surname="Bernstein"/>
    <author fullname="S. Xu" initials="S." surname="Xu"/>
    <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
    <author fullname="G. Martinelli" initials="G." surname="Martinelli"/>
    <author fullname="H. Harai" initials="H." surname="Harai"/>
    <date month="November" year="2015"/>
    <abstract>
      <t>This document provides extensions to Generalized Multiprotocol Label Switching (GMPLS) signaling for control of Wavelength Switched Optical Networks (WSONs). Such extensions are applicable in WSONs under a number of conditions including: (a) when optional processing, such as regeneration, must be configured to occur at specific nodes along a path, (b) where equipment must be configured to accept an optical signal with specific attributes, or (c) where equipment must be configured to output an optical signal with specific attributes. This document provides mechanisms to support distributed wavelength assignment with a choice of distributed wavelength assignment algorithms.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7689"/>
  <seriesInfo name="DOI" value="10.17487/RFC7689"/>
</reference>

<reference anchor="I-D.ietf-ccamp-optical-impairment-topology-yang">
   <front>
      <title>A YANG Data Model for Optical Impairment-aware Topology</title>
      <author fullname="Dieter Beller" initials="D." surname="Beller">
         <organization>Nokia</organization>
      </author>
      <author fullname="Esther Le Rouzic" initials="E." surname="Le Rouzic">
         <organization>Orange</organization>
      </author>
      <author fullname="Sergio Belotti" initials="S." surname="Belotti">
         <organization>Nokia</organization>
      </author>
      <author fullname="Gabriele Galimberti" initials="G." surname="Galimberti">
         <organization>Individual</organization>
      </author>
      <author fullname="Italo Busi" initials="I." surname="Busi">
         <organization>Huawei Technologies</organization>
      </author>
      <date day="11" month="April" year="2025"/>
      <abstract>
	 <t>   In order to provision an optical connection through optical networks,
   a combination of path continuity, resource availability, and
   impairment constraints must be met to determine viable and optimal
   paths through the network.  The determination of appropriate paths is
   known as Impairment-Aware Routing and Wavelength Assignment (IA-RWA)
   for WSON, while it is known as Impairment-Aware Routing and Spectrum
   Assignment (IA-RSA) for SSON.

   This document provides a YANG data model for the impairment-aware TE
   topology in optical networks.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-optical-impairment-topology-yang-18"/>
   
</reference>
<reference anchor="RFC8795">
  <front>
    <title>YANG Data Model for Traffic Engineering (TE) Topologies</title>
    <author fullname="X. Liu" initials="X." surname="Liu"/>
    <author fullname="I. Bryskin" initials="I." surname="Bryskin"/>
    <author fullname="V. Beeram" initials="V." surname="Beeram"/>
    <author fullname="T. Saad" initials="T." surname="Saad"/>
    <author fullname="H. Shah" initials="H." surname="Shah"/>
    <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
    <date month="August" year="2020"/>
    <abstract>
      <t>This document defines a YANG data model for representing, retrieving, and manipulating Traffic Engineering (TE) Topologies. The model serves as a base model that other technology-specific TE topology models can augment.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8795"/>
  <seriesInfo name="DOI" value="10.17487/RFC8795"/>
</reference>
<reference anchor="RFC4203">
  <front>
    <title>OSPF Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)</title>
    <author fullname="K. Kompella" initials="K." role="editor" surname="Kompella"/>
    <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
    <date month="October" year="2005"/>
    <abstract>
      <t>This document specifies encoding of extensions to the OSPF routing protocol in support of Generalized Multi-Protocol Label Switching (GMPLS). [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4203"/>
  <seriesInfo name="DOI" value="10.17487/RFC4203"/>
</reference>
<reference anchor="RFC8363">
  <front>
    <title>GMPLS OSPF-TE Extensions in Support of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks</title>
    <author fullname="X. Zhang" initials="X." surname="Zhang"/>
    <author fullname="H. Zheng" initials="H." surname="Zheng"/>
    <author fullname="R. Casellas" initials="R." surname="Casellas"/>
    <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
    <author fullname="D. Ceccarelli" initials="D." surname="Ceccarelli"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>The International Telecommunication Union Telecommunication standardization sector (ITU-T) has extended its Recommendations G.694.1 and G.872 to include a new Dense Wavelength Division Multiplexing (DWDM) grid by defining channel spacings, a set of nominal central frequencies, and the concept of the "frequency slot". Corresponding techniques for data-plane connections are known as "flexi-grid".</t>
      <t>Based on the characteristics of flexi-grid defined in G.694.1 and in RFCs 7698 and 7699, this document describes the Open Shortest Path First - Traffic Engineering (OSPF-TE) extensions in support of GMPLS control of networks that include devices that use the new flexible optical grid.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8363"/>
  <seriesInfo name="DOI" value="10.17487/RFC8363"/>
</reference>
<reference anchor="RFC7688">
  <front>
    <title>GMPLS OSPF Enhancement for Signal and Network Element Compatibility for Wavelength Switched Optical Networks</title>
    <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
    <author fullname="G. Bernstein" initials="G." role="editor" surname="Bernstein"/>
    <date month="November" year="2015"/>
    <abstract>
      <t>This document provides Generalized Multiprotocol Label Switching (GMPLS) Open Shortest Path First (OSPF) routing enhancements to support signal compatibility constraints associated with Wavelength Switched Optical Network (WSON) elements. These routing enhancements are applicable in common optical or hybrid electro-optical networks where not all the optical signals in the network are compatible with all network elements participating in the network.</t>
      <t>This compatibility constraint model is applicable to common optical or hybrid electro-optical systems such as optical-electronic-optical (OEO) switches, regenerators, and wavelength converters, since such systems can be limited to processing only certain types of WSON signals.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7688"/>
  <seriesInfo name="DOI" value="10.17487/RFC7688"/>
</reference>
<reference anchor="RFC3471">
  <front>
    <title>Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description</title>
    <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
    <date month="January" year="2003"/>
    <abstract>
      <t>This document describes extensions to Multi-Protocol Label Switching (MPLS) signaling required to support Generalized MPLS. Generalized MPLS extends the MPLS control plane to encompass time-division (e.g., Synchronous Optical Network and Synchronous Digital Hierarchy, SONET/SDH), wavelength (optical lambdas) and spatial switching (e.g., incoming port or fiber to outgoing port or fiber). This document presents a functional description of the extensions. Protocol specific formats and mechanisms, and technology specific details are specified in separate documents. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3471"/>
  <seriesInfo name="DOI" value="10.17487/RFC3471"/>
</reference>
<reference anchor="RFC8341">
  <front>
    <title>Network Configuration Access Control Model</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
      <t>This document obsoletes RFC 6536.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="91"/>
  <seriesInfo name="RFC" value="8341"/>
  <seriesInfo name="DOI" value="10.17487/RFC8341"/>
</reference>
<reference anchor="RFC6020">
  <front>
    <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="October" year="2010"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6020"/>
  <seriesInfo name="DOI" value="10.17487/RFC6020"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="ITU-T_G.807" >
  <front>
    <title>Generic functional architecture of the optical media network</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2021" month="January"/>
  </front>
  <seriesInfo name="ITU-T Supplement G.807, Amendment 1" value=""/>
</reference>
<reference anchor="ITU-T_G.872" >
  <front>
    <title>Architecture of optical transport networks</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2021" month="January"/>
  </front>
  <seriesInfo name="ITU-T Supplement G.872, Amendment 1" value=""/>
</reference>
<reference anchor="ITU-T_G.Sup39" >
  <front>
    <title>Optical system design and engineering considerations</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2016" month="February"/>
  </front>
  <seriesInfo name="ITU-T Supplement G.Sup39" value=""/>
</reference>


<reference anchor="RFC6163">
  <front>
    <title>Framework for GMPLS and Path Computation Element (PCE) Control of Wavelength Switched Optical Networks (WSONs)</title>
    <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
    <author fullname="G. Bernstein" initials="G." role="editor" surname="Bernstein"/>
    <author fullname="W. Imajuku" initials="W." surname="Imajuku"/>
    <date month="April" year="2011"/>
    <abstract>
      <t>This document provides a framework for applying Generalized Multi-Protocol Label Switching (GMPLS) and the Path Computation Element (PCE) architecture to the control of Wavelength Switched Optical Networks (WSONs). In particular, it examines Routing and Wavelength Assignment (RWA) of optical paths.</t>
      <t>This document focuses on topological elements and path selection constraints that are common across different WSON environments; as such, it does not address optical impairments in any depth. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6163"/>
  <seriesInfo name="DOI" value="10.17487/RFC6163"/>
</reference>
<reference anchor="RFC7698">
  <front>
    <title>Framework and Requirements for GMPLS-Based Control of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks</title>
    <author fullname="O. Gonzalez de Dios" initials="O." role="editor" surname="Gonzalez de Dios"/>
    <author fullname="R. Casellas" initials="R." role="editor" surname="Casellas"/>
    <author fullname="F. Zhang" initials="F." surname="Zhang"/>
    <author fullname="X. Fu" initials="X." surname="Fu"/>
    <author fullname="D. Ceccarelli" initials="D." surname="Ceccarelli"/>
    <author fullname="I. Hussain" initials="I." surname="Hussain"/>
    <date month="November" year="2015"/>
    <abstract>
      <t>To allow efficient allocation of optical spectral bandwidth for systems that have high bit-rates, the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) has extended its Recommendations G.694.1 and G.872 to include a new Dense Wavelength Division Multiplexing (DWDM) grid by defining a set of nominal central frequencies, channel spacings, and the concept of the "frequency slot". In such an environment, a data-plane connection is switched based on allocated, variable-sized frequency ranges within the optical spectrum, creating what is known as a flexible grid (flexi-grid).</t>
      <t>Given the specific characteristics of flexi-grid optical networks and their associated technology, this document defines a framework and the associated control-plane requirements for the application of the existing GMPLS architecture and control-plane protocols to the control of flexi-grid DWDM networks. The actual extensions to the GMPLS protocols will be defined in companion documents.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7698"/>
  <seriesInfo name="DOI" value="10.17487/RFC7698"/>
</reference>
<reference anchor="RFC7446">
  <front>
    <title>Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks</title>
    <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
    <author fullname="G. Bernstein" initials="G." role="editor" surname="Bernstein"/>
    <author fullname="D. Li" initials="D." surname="Li"/>
    <author fullname="W. Imajuku" initials="W." surname="Imajuku"/>
    <date month="February" year="2015"/>
    <abstract>
      <t>This document provides a model of information needed by the Routing and Wavelength Assignment (RWA) process in Wavelength Switched Optical Networks (WSONs). The purpose of the information described in this model is to facilitate constrained optical path computation in WSONs. This model takes into account compatibility constraints between WSON signal attributes and network elements but does not include constraints due to optical impairments. Aspects of this information that may be of use to other technologies utilizing a GMPLS control plane are discussed.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7446"/>
  <seriesInfo name="DOI" value="10.17487/RFC7446"/>
</reference>
<reference anchor="RFC7581">
  <front>
    <title>Routing and Wavelength Assignment Information Encoding for Wavelength Switched Optical Networks</title>
    <author fullname="G. Bernstein" initials="G." role="editor" surname="Bernstein"/>
    <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
    <author fullname="D. Li" initials="D." surname="Li"/>
    <author fullname="W. Imajuku" initials="W." surname="Imajuku"/>
    <author fullname="J. Han" initials="J." surname="Han"/>
    <date month="June" year="2015"/>
    <abstract>
      <t>A Wavelength Switched Optical Network (WSON) requires certain key information fields be made available to facilitate path computation and the establishment of Label Switched Paths (LSPs). The information model described in "Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks" (RFC 7446) shows what information is required at specific points in the WSON. Part of the WSON information model contains aspects that may be of general applicability to other technologies, while other parts are specific to WSONs.</t>
      <t>This document provides efficient, protocol-agnostic encodings for the WSON-specific information fields. It is intended that protocol- specific documents will reference this memo to describe how information is carried for specific uses. Such encodings can be used to extend GMPLS signaling and routing protocols. In addition, these encodings could be used by other mechanisms to convey this same information to a Path Computation Element (PCE).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7581"/>
  <seriesInfo name="DOI" value="10.17487/RFC7581"/>
</reference>

<reference anchor="I-D.ietf-ccamp-dwdm-if-param-yang">
   <front>
      <title>A YANG data model to manage configurable DWDM optical interfaces</title>
      <author fullname="Gabriele Galimberti" initials="G." surname="Galimberti">
         <organization>C</organization>
      </author>
      <author fullname="Dharini Hiremagalur" initials="D." surname="Hiremagalur">
         <organization>Juniper</organization>
      </author>
      <author fullname="Gert Grammel" initials="G." surname="Grammel">
         <organization>Juniper</organization>
      </author>
      <author fullname="Roberto Manzotti" initials="R." surname="Manzotti">
         <organization>Cisco</organization>
      </author>
      <author fullname="Dirk Breuer" initials="D." surname="Breuer">
         <organization>DEUTSCHE TELEKOM AG</organization>
      </author>
      <date day="12" month="February" year="2025"/>
      <abstract>
	 <t>   This memo defines a Yang model related to the Optical Transceiver
   parameters characterising coherent 100G and above interfaces.  100G
   and above Transceivers support coherent modulation, multiple
   modulation formats, multiple FEC codes including some not yet
   specified (or in phase of specification by) [ITU-T_G.698.2] or any
   other ITU-T recommendation.  Use cases are described in [RFC7698].

   The Yang model defined in this memo can be used for Optical
   Parameters monitoring and/or configuration of DWDM interfaces.  The
   use of this model does not guarantee interworking of DWDM
   transceivers.  Optical path feasibility and interoperability has to
   be determined by tools and algorithms outside the scope of this
   document.  The purpose of this model is to program interface
   parameters to consistently configure the mode of operation of
   transceivers.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-dwdm-if-param-yang-12"/>
   
</reference>

<reference anchor="I-D.ietf-netmod-rfc8407bis">
   <front>
      <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
      <author fullname="Andy Bierman" initials="A." surname="Bierman">
         <organization>YumaWorks</organization>
      </author>
      <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
         <organization>Orange</organization>
      </author>
      <author fullname="Qin Wu" initials="Q." surname="Wu">
         <organization>Huawei</organization>
      </author>
      <date day="5" month="June" year="2025"/>
      <abstract>
	 <t>   This document provides guidelines for authors and reviewers of
   specifications containing YANG data models, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF Protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
   
</reference>
<reference anchor="RFC8040">
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8040"/>
  <seriesInfo name="DOI" value="10.17487/RFC8040"/>
</reference>
<reference anchor="RFC4252">
  <front>
    <title>The Secure Shell (SSH) Authentication Protocol</title>
    <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
    <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
    <date month="January" year="2006"/>
    <abstract>
      <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4252"/>
  <seriesInfo name="DOI" value="10.17487/RFC4252"/>
</reference>
<reference anchor="RFC8446">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="August" year="2018"/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8446"/>
  <seriesInfo name="DOI" value="10.17487/RFC8446"/>
</reference>
<reference anchor="RFC9000">
  <front>
    <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
    <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
    <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9000"/>
  <seriesInfo name="DOI" value="10.17487/RFC9000"/>
</reference>
<reference anchor="RFC3688">
  <front>
    <title>The IETF XML Registry</title>
    <author fullname="M. Mealling" initials="M." surname="Mealling"/>
    <date month="January" year="2004"/>
    <abstract>
      <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="81"/>
  <seriesInfo name="RFC" value="3688"/>
  <seriesInfo name="DOI" value="10.17487/RFC3688"/>
</reference>
<reference anchor="RFC8340">
  <front>
    <title>YANG Tree Diagrams</title>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="215"/>
  <seriesInfo name="RFC" value="8340"/>
  <seriesInfo name="DOI" value="10.17487/RFC8340"/>
</reference>



    </references>

</references>


<?line 2843?>

<section anchor="yang-tree"><name>The Complete Schema Trees</name>

<t>This appendix presents the complete tree of the Layer 0 Types data model. See <xref target="RFC8340"/> for an explanation of the symbols used. The data type of every leaf node is shown near the right end of the corresponding line.</t>

<figure anchor="fig-yang-tree"><artwork type="ascii-art"><![CDATA[
module: ietf-layer0-types

  grouping wdm-label-start-end:
    +-- (grid-type)?
       +--:(fixed-dwdm)
       |  +-- dwdm-n?    dwdm-n
       +--:(cwdm)
       |  +-- cwdm-n?    cwdm-n
       +--:(flexi-grid)
          +-- flexi-n?   flexi-n
  grouping wdm-label-step:
    +-- (l0-grid-type)?
       +--:(fixed-dwdm)
       |  +-- wson-dwdm-channel-spacing?    identityref
       +--:(cwdm)
       |  +-- wson-cwdm-channel-spacing?    identityref
       +--:(flexi-grid)
          x-- flexi-grid-channel-spacing?   identityref
          +-- flexi-ncfg?                   identityref
          +-- flexi-n-step?                 uint8
  grouping wdm-label-hop:
    +-- (grid-type)?
       +--:(fixed-dwdm)
       |  +-- (fixed-single-or-super-channel)?
       |     +--:(single)
       |     |  +-- dwdm-n?               dwdm-n
       |     +--:(multi)
       |        +-- subcarrier-dwdm-n*    dwdm-n
       +--:(cwdm)
       |  +-- cwdm-n?                     cwdm-n
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              flexi-n
             |  +-- flexi-m?              flexi-m
             x--:(super)
             |  x-- subcarrier-flexi-n* [flexi-n]
             |     +-- flexi-n?   flexi-n
             |     +-- flexi-m?   flexi-m
             +--:(multi)
                +-- frequency-slots
                   +-- frequency-slot* [flexi-n]
                      +-- flexi-n?   flexi-n
                      +-- flexi-m?   flexi-m
  grouping wdm-label-range-info:
    +-- grid-type?    identityref
    +-- priority?     uint8
    +-- flexi-grid
       +-- slot-width-granularity?   identityref
       +-- min-slot-width-factor?    uint16
       +-- max-slot-width-factor?    uint16
  grouping wson-label-start-end:
    +-- (grid-type)?
       +--:(dwdm)
       |  +-- dwdm-n?   dwdm-n
       +--:(cwdm)
          +-- cwdm-n?   cwdm-n
  grouping wson-label-hop:
    +-- (grid-type)?
       +--:(dwdm)
       |  +-- (single-or-super-channel)?
       |     +--:(single)
       |     |  +-- dwdm-n?              dwdm-n
       |     +--:(super)
       |        +-- subcarrier-dwdm-n*   dwdm-n
       +--:(cwdm)
          +-- cwdm-n?                    cwdm-n
  grouping l0-label-range-info:
    +-- grid-type?   identityref
    +-- priority?    uint8
  grouping wson-label-step:
    +-- (l0-grid-type)?
       +--:(dwdm)
       |  +-- wson-dwdm-channel-spacing?   identityref
       +--:(cwdm)
          +-- wson-cwdm-channel-spacing?   identityref
  grouping flexi-grid-label-start-end:
    +-- flexi-n?   flexi-n
  grouping flexi-grid-frequency-slot:
    +-- flexi-n?   flexi-n
    +-- flexi-m?   flexi-m
  grouping flexi-grid-label-hop:
    +-- (single-or-super-channel)?
       +--:(single)
       |  +-- flexi-n?              flexi-n
       |  +-- flexi-m?              flexi-m
       x--:(super)
       |  x-- subcarrier-flexi-n* [flexi-n]
       |     +-- flexi-n?   flexi-n
       |     +-- flexi-m?   flexi-m
       +--:(multi)
          +-- frequency-slots
             +-- frequency-slot* [flexi-n]
                +-- flexi-n?   flexi-n
                +-- flexi-m?   flexi-m
  grouping flexi-grid-label-range-info:
    +-- grid-type?    identityref
    +-- priority?     uint8
    +-- flexi-grid
       +-- slot-width-granularity?   identityref
       +-- min-slot-width-factor?    uint16
       +-- max-slot-width-factor?    uint16
  grouping flexi-grid-label-step:
    x-- flexi-grid-channel-spacing?   identityref
    +-- flexi-ncfg?                   identityref
    +-- flexi-n-step?                 uint8
  grouping transceiver-capabilities:
    +--ro supported-modes!
       +--ro supported-mode* [mode-id]
          +--ro mode-id?                          string
          +--ro (mode)
             +--:(G.698.2)
             |  +--ro standard-mode?              standard-mode
             |  +--ro line-coding-bitrate*        identityref
             |  +--ro transceiver-tuning-range
             |  |  +--ro min-central-frequency?
             |  |  |       frequency-thz
             |  |  +--ro max-central-frequency?
             |  |  |       frequency-thz
             |  |  +--ro transceiver-tunability-granularity?
             |  |          frequency-ghz
             |  +--ro tx-channel-power-min?       power-dbm
             |  +--ro tx-channel-power-max?       power-dbm
             |  +--ro rx-channel-power-min?       power-dbm
             |  +--ro rx-channel-power-max?       power-dbm
             |  +--ro rx-total-power-max?         power-dbm
             +--:(organizational-mode)
             |  +--ro organizational-mode
             |     +--ro operational-mode?           operational-mode
             |     +--ro organization-identifier?
             |     |       organization-identifier
             |     +--ro line-coding-bitrate*        identityref
             |     +--ro transceiver-tuning-range
             |     |  +--ro min-central-frequency?
             |     |  |       frequency-thz
             |     |  +--ro max-central-frequency?
             |     |  |       frequency-thz
             |     |  +--ro transceiver-tunability-granularity?
             |     |          frequency-ghz
             |     +--ro tx-channel-power-min?       power-dbm
             |     +--ro tx-channel-power-max?       power-dbm
             |     +--ro rx-channel-power-min?       power-dbm
             |     +--ro rx-channel-power-max?       power-dbm
             |     +--ro rx-total-power-max?         power-dbm
             +--:(explicit-mode)
                +--ro explicit-mode
                   +--ro transceiver-tuning-range
                   |  +--ro min-central-frequency?
                   |  |       frequency-thz
                   |  +--ro max-central-frequency?
                   |  |       frequency-thz
                   |  +--ro transceiver-tunability-granularity?
                   |          frequency-ghz
                   +--ro tx-channel-power-min?       power-dbm
                   +--ro tx-channel-power-max?       power-dbm
                   +--ro rx-channel-power-min?       power-dbm
                   +--ro rx-channel-power-max?       power-dbm
                   +--ro rx-total-power-max?         power-dbm
                   +--ro compatible-modes
                      +--ro supported-application-code*
                      |       -> ../../../../supported-mode/mode-id
                      +--ro supported-organizational-mode*
                              -> ../../../../supported-mode/mode-id
  grouping standard-mode:
    +--ro standard-mode?   standard-mode
  grouping organizational-mode:
    +--ro operational-mode?          operational-mode
    +--ro organization-identifier?   organization-identifier
  grouping penalty-value:
    +--ro penalty-value    union
  grouping explicit-mode:
    +--ro line-coding-bitrate?                identityref
    +--ro bitrate?                            uint16
    +--ro max-diff-group-delay?               decimal-2
    +--ro max-chromatic-dispersion?           decimal-2
    +--ro cd-penalty* [cd-value]
    |  +--ro cd-value         decimal-2
    |  +--ro penalty-value    union
    +--ro max-polarization-mode-dispersion?   decimal-2
    +--ro pmd-penalty* [pmd-value]
    |  +--ro pmd-value        decimal-2
    |  +--ro penalty-value    union
    +--ro max-polarization-dependent-loss     power-loss-or-null
    +--ro pdl-penalty* [pdl-value]
    |  +--ro pdl-value        power-loss
    |  +--ro penalty-value    union
    +--ro available-modulation-type?          identityref
    +--ro min-OSNR?                           snr
    +--ro rx-ref-channel-power?               power-dbm
    +--ro rx-channel-power-penalty* [rx-channel-power-value]
    |  +--ro rx-channel-power-value    power-dbm
    |  +--ro penalty-value             union
    +--ro min-Q-factor?                       decimal-2
    +--ro available-baud-rate?                decimal64
    +--ro roll-off?                           decimal64
    +--ro min-carrier-spacing?                frequency-ghz
    +--ro available-fec-type?                 identityref
    +--ro fec-code-rate?                      decimal64
    +--ro fec-threshold?                      decimal64
    +--ro in-band-osnr?                       snr
    +--ro out-of-band-osnr?                   snr
    +--ro tx-polarization-power-difference?   power-ratio
    +--ro polarization-skew?                  decimal-2
  grouping common-standard-organizational-mode:
    +--ro line-coding-bitrate*   identityref
  grouping transceiver-tuning-range:
    +-- min-central-frequency?                frequency-thz
    +-- max-central-frequency?                frequency-thz
    +-- transceiver-tunability-granularity?   frequency-ghz
  grouping common-all-modes:
    +--ro transceiver-tuning-range
    |  +--ro min-central-frequency?                frequency-thz
    |  +--ro max-central-frequency?                frequency-thz
    |  +--ro transceiver-tunability-granularity?   frequency-ghz
    +--ro tx-channel-power-min?       power-dbm
    +--ro tx-channel-power-max?       power-dbm
    +--ro rx-channel-power-min?       power-dbm
    +--ro rx-channel-power-max?       power-dbm
    +--ro rx-total-power-max?         power-dbm
  grouping common-transceiver-param:
    +-- line-coding-bitrate?   identityref
    +-- tx-channel-power?      power-dbm-or-null
    +--ro rx-channel-power?      power-dbm-or-null
    +--ro rx-total-power?        power-dbm-or-null
  grouping common-transceiver-configured-param:
    +-- line-coding-bitrate?   identityref
    +-- tx-channel-power?      power-dbm-or-null
  grouping common-transceiver-readonly-param:
    +--ro rx-channel-power?   power-dbm-or-null
    +--ro rx-total-power?     power-dbm-or-null
  grouping tunnel-attributes:
    +-- wavelength-assignment?   identityref
  grouping frequency-range:
    +-- lower-frequency    frequency-thz
    +-- upper-frequency    frequency-thz
  grouping frequency-range-with-identifier:
    +-- frequency-range-id?   uint16
    +-- frequency-range
       +-- lower-frequency    frequency-thz
       +-- upper-frequency    frequency-thz
  grouping path-constraints:
    +-- gsnr-extra-margin?   snr
  grouping path-properties:
    +--ro estimated-gsnr?          snr
    +--ro estimated-eol-gsnr?      snr
    +--ro estimated-lowest-gsnr?   snr
]]></artwork></figure>

</section>
<section anchor="changes-bis"><name>Changes from RFC 9093</name>

<t>This version adds new identities, data types, and groupings to the 'ietf-layer0-types' YANG module.</t>

<t>The following new YANG identities have been added to the 'ietf-layer0-types' module:</t>

<t><list style="symbols">
  <t>cwdm-ch-spc-type</t>
  <t>flexi-ncfg-type</t>
  <t>flexi-ncfg-6p25gh</t>
  <t>modulation</t>
  <t>DPSK</t>
  <t>QPSK</t>
  <t>DP-QPSK</t>
  <t>QAM8</t>
  <t>DP-QAM8</t>
  <t>QAM16</t>
  <t>DP-QAM16</t>
  <t>QAM32</t>
  <t>DP-QAM32</t>
  <t>QAM64</t>
  <t>DP-QAM64</t>
  <t>fec-type</t>
  <t>g-fec</t>
  <t>super-fec</t>
  <t>no-fec</t>
  <t>sc-fec</t>
  <t>o-fec</t>
  <t>c-fec</t>
  <t>line-coding</t>
  <t>line-coding-NRZ-2p5G</t>
  <t>line-coding-NRZ-OTU1</t>
  <t>line-coding-NRZ-10G</t>
  <t>line-coding-NRZ-OTU2</t>
  <t>line-coding-OTL4.4-SC</t>
  <t>line-coding-FOIC1.4-SC</t>
  <t>wavelength-assignment</t>
  <t>first-fit-wavelength-assignment</t>
  <t>random-wavelength-assignment</t>
  <t>least-loaded-wavelength-assignment</t>
  <t>lower-first-wavelength-assignment</t>
  <t>upper-first-wavelength-assignment</t>
  <t>type-power-mode</t>
  <t>power-spectral-density</t>
  <t>carrier-power</t>
  <t>switching-wson-lsc</t>
  <t>switching-flexi-grid-lsc</t>
</list></t>

<t>The following new YANG data types have been added to the 'ietf-layer0-types' module:</t>

<t><list style="symbols">
  <t>Standard-mode</t>
  <t>Organization-identifier</t>
  <t>Operational-mode</t>
  <t>frequency-thz</t>
  <t>frequency-ghz</t>
  <t>snr</t>
  <t>snr-or-null</t>
  <t>fiber-type</t>
  <t>decimal-2</t>
  <t>decimal-2-or-null</t>
  <t>power-gain</t>
  <t>power-gain-or-null</t>
  <t>power-loss</t>
  <t>power-loss-or-null</t>
  <t>power-ratio</t>
  <t>power-ratio-or-null</t>
  <t>power-dbm</t>
  <t>power-dbm-or-null</t>
  <t>decimal-5</t>
  <t>decimal-5-or-null</t>
  <t>psd</t>
  <t>psd-or-null</t>
</list></t>

<t>The following new YANG groupings have been added to the 'ietf-layer0-types' module:</t>

<t><list style="symbols">
  <t>wdm-label-start-end</t>
  <t>wdm-label-step</t>
  <t>wdm-label-hop</t>
  <t>wdm-label-range-info</t>
  <t>transceiver-capabilities</t>
  <t>standard-mode</t>
  <t>organizational-mode</t>
  <t>penalty-value</t>
  <t>explicit-mode</t>
  <t>common-standard-organizational-mode</t>
  <t>transceiver-tuning-range</t>
  <t>common-all-mode</t>
  <t>common-transceiver-param</t>
  <t>common-transceiver-configured-param</t>
  <t>common-transceiver-readonly-param</t>
  <t>tunnel-attributes</t>
  <t>frequency-range</t>
  <t>frequency-range-with-identifier</t>
  <t>path-constraints</t>
  <t>path-properties</t>
</list></t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors and the working group give their sincere thanks to Robert
Wilton for the YANG doctor review and to Adrian Farrel and Tom Petch for their comments
during the model and document development.</t>

<t>This document was prepared using kramdown.</t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="H." surname="Zheng" fullname="Haomian Zheng">
      <organization>Huawei</organization>
      <address>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </contact>
    <contact initials="D." surname="King" fullname="Daniel King">
      <organization>University of Lancaster</organization>
      <address>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </contact>
    <contact initials="G." surname="Galimberti" fullname="Gabriele Galimberti">
      <organization>Nokia</organization>
      <address>
        <email>gabriele.galimberti@nokia.com</email>
      </address>
    </contact>
    <contact initials="E." surname="Griseri" fullname="Enrico Griseri">
      <organization>Nokia</organization>
      <address>
        <email>Enrico.Griseri@nokia.com</email>
      </address>
    </contact>
    <contact initials="D." surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei</organization>
      <address>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </contact>
    <contact initials="B. Y." surname="Yoon" fullname="Bin Yeong Yoon">
      <organization>ETRI</organization>
      <address>
        <email>byyun@etri.re.kr</email>
      </address>
    </contact>
    <contact initials="R." surname="Vilalta" fullname="Ricard Vilalta">
      <organization>CTTC</organization>
      <address>
        <email>ricard.vilalta@cttc.es</email>
      </address>
    </contact>
    <contact initials="Y." surname="Lee" fullname="Young Lee">
      <organization>Samsung</organization>
      <address>
        <email>younglee.tx@gmail.com</email>
      </address>
    </contact>
    <contact initials="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </contact>
    <contact initials="R." surname="Manzotti" fullname="Roberto Manzotti">
      <organization>Cisco</organization>
      <address>
        <email>rmanzott@cisco.com</email>
      </address>
    </contact>
    <contact initials="G." surname="Grammel" fullname="Gert Grammel">
      <organization>Juniper</organization>
      <address>
        <email>ggrammel@juniper.net</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+196XrbSJLgfz5FjvrbNVUt0KQuy/LUIUu2S9OW5LJUU31+
/UEkSGFMAlwAtKRyeZ5ln2WfbOPIE0iAhyTbNW193WWJzCMyMq6MjIgMgqDV
TwdxMtoXs2IY7LVaRVyMo31xmE4maSL+cnD6ShyFRSgubqdRLoZpJl6Ht1Em
uuI0Kq7T7F3eaoWXl1n0fl+87jr9qEtrkPaTcAJDDrJwWARxBPP0++FkGmTD
/tPu063gMs6DcVhEedFKL/N0HMGv+wK/auWzy0mc53GaFDDYvjh+cfGyhbOO
snQ2BTAPD07eiF/gA1iDeIUftvow1CjNbvdFXgxa8TTbF0U2y4vNbvdpd7PV
yoswGfwzHKcJDHgLEE7jffG3Iu1viDzNiiwa5vDb7YR/6cOCoqTI/wHLnBVX
abbfEiKA/wvByzqPslGciufROC2KmL5IM8DnafouDunPLEWMRoO4SDP6IJqE
8RjAo56dS+75Q4IdOjBfaYLjAmAVz2e5NfiPs/A6ihtHj7Fb5xK6/XBFrT1D
H8FuwF4C7OMoWwb0AXVE0KFjLeQv8uIKhn8dibfp7Ne4T1/FCWzui07pU5r3
LAuTUWTPE9EIHZiEmv6QUgvPVAcxLFK8mqVmtJezYpZFsHBxEfWvknScjmLY
bWv0EDuNZmkHifKHEX5IQwNPJEUWX86K6nb/GKaTOEzEX6+iZOTdEDn4r9jg
ils37ECYxNFY/Cm2B/s5id9HWR4XtyIdAr8l/TAvIncDOkjxP4zVd52w35m9
Kw3+KrzMYPQIfhnHk8so89OnHHIkW3dGunX9ziZZ3E+B4WIg4qZBuWFHNqwd
7+gqm72H/6aD2yacDrBZebfckZ7HIH2iFKTBX9I0MYO9uHh7bA91eXs7S36I
YJs7WdR5l5WGeRv3w2wg/jMeh+MiNMMcXlwc2sNk1K7zntv90C+KfoeIzB7s
L+kM4HkdRWac83CSz+Sey6FusdU4ijrFTe3q/jPuFyiC02n0awPW31Ozzhib
1eL8bYp7nIqTMPnVFV2Hcd5PnVVOuM0PffzGM9YrGAmoIQRZOTbj/Mcsiacu
3Y5G3OiH/+LvOklUtFpJCjMUQPTIbccXPwcX/3zV2d3d3aeuUiV9R38IcXgV
ZmEfaD7Oi7ifI4tM03GYxb/CEKB7JukgAgGVT5GF4G+AdholeQgYyQWIfuyQ
Rf2IeEwUV2FhmkSk4ZqGWyMojCrQiz1OAKSE+oRjEDnjCFUHrLLP4wBTS3oc
wDwgnqLLbBZmt2Kz2+vR58ghUR4nw3SfkSDeRqx+BjwE4YRREmajqNgXV0Ux
zfcfP76+vu7ExawTJ8VjWNvji+Dti8NAtdcYfbrd6Tk4XTufRv0iA4BHWTxg
/f7L0YkIp9OxBByk9RF+NMyi/zOLkv4tNb03NJwBpQIdAhY2uwtjAdexHB5k
DxsTmytg4hA/ug7fw7KSUXF1v6g4AqKcMC66W8vgYnNpXGw6uNgr4UJx2sEE
1j6Mo4GYzMbAa1dhkoCyGgCrRDYWBvH7OFdrEdx4Oo5u0Caz8SeuY2gN6wEx
J9Ro6RRGDseyb4w4G4Z9qajvAaun6XuF1d7e4ljdWxqrew5Wn3SfOjg91gsj
0gKzRq0crNMwyadgeoqETer7WjrI32gpxgKgl1o0t7eWXCKks4uftwUY2qMg
i8L+ldnd+1rheTQt1O4utczO5gacVbIsHsHns4lYTpzQAKWVbzkrf4nkfwlk
fnZxKp73ut1XXjw8BJVvbi6Dh60NYHP4DA85K2Bhy8LC052nJfVyVkfhYnp1
m9NXYzpN3j9C/mM2vl2K5Qn6pdaveuj1P9lxaSDNrtGIjLIMOL4P1AYaBidD
AYAnWzAygEHzWzDgJ/e2cKNQuwszBEC+3MqpvbXu0r43rvwqHl2Jy7gIMrS3
yLZ4MGQoKlhYndJaXNGwnB6gARzkPCnbXBfIDWh8RmR4wtQoKGq1aoM+RXRm
0TSCtWagpZVCGcaXWWQhtR/iBBK1D2HAbi5swBI6lkTokxJCu10Xny/hBCzC
PggPMOdTXHfeh9M78AAsaBLDanLRftUZQrN1EYg36TV8lStzD/GOJ238AIwd
Xuy9IUkR4NPFESTZdnH8UIez45f/3O52//rWtTrAgotQtPPwB6Msoj8FNa1b
pJbbvFoW2Uh8wNezibW6kzADbeZVvQBPQJME3V6nWwtI7VLTeIiT4Vnz8fU0
QI8MNH88m47TcJA/dof/J1D/rB8NNjvTwbDVQgg8B8q97hOXcF5FCUDcF8NZ
0pc7iguKCyCNGXAQHBRtO20SDeJQabD7o5AwmcdF57OpxJ6gVZRVtl7gk9KZ
5qC0mlqL8/6kwtLLebJZtxxot+Ua0WuKMFmWAe/m8SihQz3ITBB1MBeQKRBL
Hg+ijKXkg5zYdxdZGy2g1QqCQISXeYFei1br4irOxSDtz6jRIBoC2LkIAejx
WGpJ2Kk++9EH6HpH13e+IWBFCeABJtxo4YrJBQ7LzcF6Ijolpzv1QJ/FGDEx
DpPRLBxFHXFxFbG+wWFpRHeQDQAlA4YZwEE/ndB4l7N4XARxYg08F5QQCA2N
uWQAI4EwvoQ/J0hp8OflLQI2G0fS60JQalmjrhVg84bxaMabR1ubg9CIWv1w
Gl7GY54VhDwInjAXvxh9eQ6ny/4VzKNGVBcUov3L+dlpvo6DtYaoRwM8t8N5
GzWuNcKR0rgntsZto4myrjmlU95CfWch3r48pGsLXCmo5XHYx/56a3jxIkZ/
EwhC2PcBn4hRqFxDDzk7ISdO+uPZACljMIgliTbsg3C2ocNEN4kHg3HUav0B
ST2D2Ym8Wki6NNSHD/8GID95utP9+FHESIR+6hGznHeTvsHu7iZhrw3eJvn7
22iSwh9vshSkMgqfw3A8BoBxB6B7khZa1bIVo84FkzCBCQmv0ywtUuCKXG82
YvLUHJEPHSDeyOaiffri4vDs9OW6XN/u5nbv48eOQBbgdat14SA5MCyQJy4+
nwCQwNMFMqAmfoNvwjFA9T7GfZlE6MGIczZWATnMPyKlOw/uUGUl+rxDW+BS
USx3aBFZoFgVR5nLrXLhirvNSjS14DDItyxNNd/ioLa8UKYn2pK4ZZpMwJ4d
Dvke54UlhdsXL9bFEGxT2P8ct+86AvTCv0maBBcvzFftqDPqbOgjIRGIJIeS
MCCjDRjZvoZUOk3xJ2ASRyDocilfwTSeFagSWKVbeJfYUUtD+YKXLjiCmoAX
L81DGIqkrbt1klU9wggHqpVHHz58j/TZ290C/vvwwXHTwie4Se6nmx8/Eg+J
shTDaZYVZHL6J7tP9z5+xAEqEPjoFMRRTuIK0cLojZmNgWpKoi5X/G5EJM+J
QpJYEgxKsL4yYplBBDIRhUQeMfEpgUhsisKFLmKVVeaI1AQGvgWuBjtxEAHq
pIctn00mqLCZJD58QI4dRTneONPq6gS5DaUrzGPcbvhvLlDyZlFx2xHHRUtL
hZIo98BqZH8sRT1MxWo0QwwkLOcsbp/icOksh5OEJOcN4HbYinGeuvvRat6P
TqsW31XcCEtgGrVQpX5kUbC29XyWgD4xwhxjCPIiBSnj2KSKPWkDUVjvbW1v
0vR/+ANYZHh6w3vbWyL605RPD3mrdZxI8QSmxk1R4eoN+hZPf2KNHUzdNcDu
kC58CMzW9ArUBZh60gElvf38h5I+0q7ynAlatZa0aJ9dnK6jmHPWZnkKkYfN
B2D/wgctl9fBxkf+B1oH5SR1L0KCJmqRsQVMAgavjQlmzRYw+4a4vopRYwK4
QBXYfHzLy894LBiZV9oT7de9deKECr4m4S2T2KU0AFDqSu1W8VgX1hW7Euh9
gD7KgsswR4rNwkGcqj+QDOEECFI17MsDVq6+i4p+Z91eg5LdxNEwqEeKE7m+
xRXi8qRg297e1VKUPtjZQ7FqlvEuuqVF57w+Sdo4lCEk7K6ISREjjgDMjk4G
lAklFslFP0wAaaSd01liUTebWhLdODvgDth37eTn84u1Df5XnJ7R729f/PTz
8dsXR/j7+Y8Hr1/rX1qyxfmPZz+/PjK/mZ6HZycnL06PuDN8KpyPWmsnB39Z
46Wtnb25OD47PXi9VuVsoh824fGkBGIIrfgwb8m1M8qeH775f/+3ty1XuNnr
PSVlRszce7INf1xfRQnPliZAiPwn4PS2BWo3CtH7K9DyAgsfg1bQTAR9e5Ve
JwJ2CaTWv38/RjdWsPv9dy2SDG+AmOMb7EexSad4RXsaTuBMg0g/TsrSAC+p
iUNol5J0IE0gJgNLuqWX/4UWhrKIpjQPrHOWK0ueoofQt8nfAah52o/DQtny
KBzIQAZeAxZJBppC9DlICePWb2oh/POboye8P78xkUdJP4LeRRSwhuCvKLTK
+azS++9/g235C/z8A7qPu9XuxP1d/xC/0QHnz/DT+rAv/lCEl4FEUM4H9G/X
3qi/EbseHPDa1j62Wt/RYC8osggle7QPH70ZRyADpLqNaCqNVWqfzOiSA5Cu
LdWSIKgMgqudOwjQ63Fw1JEYDHOMTdt78mQ3mE3x7I88aw08Sd9HPC8cZHAj
/6CNRQ6TO+EtPGSnVV5/6Lc3fEiucrK3HdNzo7ozHR5QWT+5kc9oWVYsRNRs
5viKsmetMuRayT5hK2QIB5H0Wm9fFs1ysv8XPonut1pAZggGTbPf2hcHAgW9
5AnudqvvRAlgMi3LGpSPct0dLdL/jY3XpyRQ+9eDSdC/CvJpf7GJDtMw85/+
W67RfEhGs7ytDlBhkShoBhEgGiwLEW3TnHla1Xl4o5P+cLTENBZ1nKbkIheH
0A794S91nMcr0PIzjISB3u3Tw5ev1gWIttqV6734jviZbVvyn6LUfx+OZ0zj
OJIWo/GvZQtJnX6Aqnc7mzuvfvxVLzIfp0VwHQ+KKwBdw7b0is9hGPELDuMu
8fwXWCEub6NxffvNy4NRFltdb7OjVhfNIxE85LNBpK4pxMsXh6KtLtpe0EXb
ob5o43U4XJlpHwDMiPo0kJG/y0xqDchHDakVL+FchNd5j0lR88CuwxmjKfEo
hjIXL2RceMy1V8BiGeXkvUCG/7eYPI+UY2USFVfpIK/b6z2y010owfTMpLs4
QHuBAXRlofaVMUBDPLqguzlMVECZtI7fR8kgzdbNCijQjGgWrWuOTxPa63kr
Lc4pjlEG+lyuCSiqs4l4t/UZB1vLnQjACgnjDNEbFOmU7NkAT84fQSdf52kC
SuES5Q9sVhEAiLhG1BikWOg7QTG44rpe+hmrecQ3LC01lTSzlALEJtZ8j/n3
yDaZ98BmRq4jhafUClmH3B3hCjQOrcEIBj2guRNKkw7gC0+8/CWtRh4LJint
N52LO8JByFU6/USogJkqy5deGLX+VvP6eYRl10ua2moT0L2GIXGNfJJ8NtzK
XLFxYs3fKjkO2Uap152E5PJYKDFVB2BDML/jlMQ2d93e7G6xcHYJJbbPdlHF
Krq8Jf86NCRUmK81SlvTMIPTA5x/8oXx6PBRNJ2LQ14rNs1rENSab6AuCpy1
xhpWt5A0l8pZKWoqb0kqFyswfMtl+PJOGpL37FI949uEKHWGogny2fNJlv2N
tEyQnuF7wBWRayKNo740jlQQbBwtTA2w97lwTsy5lNZbnZ6U1eT4Qi/wxgqA
0M3N4D3G66tTwOTbnnKgTKIwkfdt+A0oIzNoebBbwQdz6wM0uVjfehoHPcSh
54s/9ggoNZGP6ix5ugy9KTQtTW8+qdpAY/cpVitrX0K81uDGJmpyyHjRtKii
W11yLCDcKitgOfdQ4g1PXR655gURTtuXmkyM6xw5r05IGaVGI9g0mkeoKopo
jPcNwmdLlQ7m5a83WhS9RPeR5WstAQZhAueUVGcs0CldXKZg1JKPKiiNjjb+
uyV0lsab5MyVMCZKPLIElrCnFz/wxReCmQX4di6CqtbR4igy8/sxZb7/QhDW
KCDmogp7O5hagNOiGiLCbz4rUqxDXWCHsnjRk0pa4BOs7zhI1yx0O4O3O9Gg
tYaKL1/D691ooIwbvrQwEWx8+NZRp3SuRC34y1UkfeZlw5ntgegGDfi4oFOv
vsHMQF+i3x7Mp3A2wiMlwCEDWsZRCPbAkC6bEt2fz7hFNJlivq/xyk4zPFqL
P78JiytpuMBmT0Em5uqwH2VRFcKwX8zocgtBJc/Ti5sQIw3J2Q/KvIxAB/Vm
KL6wYasQd1kvR7jLaTUuh28M6CJYHziUg9eORSB99/3S53N1k1XqSH7GeBjQ
OUU27cgs5zAblB0Ves3KO6YvNIiA/LeWlNxCw9qejKoXxEfBfFWYDPCS1fhP
GHWSGSk2zBk6xxtC9pD4PDRL4w4gd2h4PteN45zulcOCfVeAmiwa0z2PvIwd
x5PYhCOoNCYDA3rFEyCtnO8rLS526Od+lld2SjJnCMSuFYfAQc+ziUj7fVg0
x+QBQZ9dnMeCrzM0cHRlLHcHuUAStCsKzOEY+KcfAgNReBuzE8DcnzHKzP2Z
PhQEl+FsQDkA8tCTjsdBOhxqhwlILmDXLIuBbZU73OxGSaQWM/T4sQBeyGdh
7wd3ZtWsxI8O6pGgxBNAG4I2CW/od9lJn3o27BAnPJqY85Bsavms8caCrnoC
EF+ESq8iMMdUTZfyhsgiS2qE+zge26t6lDNHw1R0s0N8VetSdScZxEO6ZSyE
6apueuoiGyjYFb2IeZI1OkaBqrIopwvmRLRlcNS6OCfdBJQdJGmM12w4Kx5f
8xnlNuBGdeHEnExghDwdzwioS9gSuhGoB4wSCBCwaT5YFDCZJKBzQo9kkkD7
zfnRetNU3S7NBLbEuLgN6FZgvqyRza1LBJXyob+SyFeRkIdXoBUBQX1xZBKd
24cI2xs7efkEmdRu8uakCf7d3V0OnnIGOSJNjHh5neZ5+83R63XYZRV/ErD9
lfetdVauYBYI0xWvw8nlIAz4e3GIihoQQLFywevzw3WTJGaCX2z/eI0ff4/V
oQbXNg2bgaYcvuAVnlxrYDMtVoZQntRbreMCJTBgAnCE8bFKaBVk+qCxk0Av
+CMGhd2PWBuhqryKpyBti+soSqQ31gsrAegDa6MK1Nb2k57tu1Z7QB+4iza9
8a4fPVvvpV1u74B1ZatcEwcc6JrkLCWlFnhUpatH1PlR3Q4+cnbPXHUxUKEO
lrVb6KBZa1QcqoyKeTEBGIuCbuTXdF5BMPm3t3TI+/AH+1TQapX9gI132owO
jkmjc6MSTrnHQ5c7wQyhBZPmNjStkQjerAtUH2IEOEm4IZxjtLeQLVU0CSR3
6stwfcnUPjs5XxcnlAxzKJO4qfKOaJ8cvpKhb84yl7d1ZYhUDsaFhYM2Azkf
FeWIHF4nrv06lgcWha+UY49QYStkwBCYqwtIyqJRlAQUqQa9wdqB4bA+REg3
iXRGEO24E3WQVeqbMNiDNGILS5oW0OVWbL3lSdAwTrP1jhS2dH3K7Awt3NQH
ly4wSg8VBvyDY3MUJ5gHAL07NtYbiuDgYe4Kn6BZuMI5pHy6RUjdudDoOCh7
kePaw4UMd5YCoYhHs3SWW93ZZ9LXdT9+ZYMHre86vzhHjNK8ZB7wpVJ5SNj5
tK9s+tAD8Cwx3nJowvFiJYKTtOp6MDxedHWglfuKW6ijXfZbrQDj1tRpgepM
sNsB22zUY25TiYp6bKNtyIPxuKrygjKq2+XgGcqUwW44bhnDVoaqvk5Bh8Ks
UOLW5f3SvR56c8CiLH/Jo9CRhPQdZ7aGeGoEkgBRFaOOADT9N/zIJK4xKTrx
reiBukK78I8iEd9Ul6dtSJgzmazzEK3vpFPhUfKoQpoWXGFOWn0EgLSnKRiB
IDc3RBKNQv4N4Oyul3bvaOHd6y21e0fe3SsHGjXunnVc+cy7N8SNe7rV63Y7
3W5XvPrx10X2D5p9sg2UJRzuZw/p+K3F0VJbhPaM2qMNOrwNlBCxRrROlxTK
tCGJBlSBjDTygr6+oWoiNcLiDo8hXNb4Mk7LP75jF27U0Bgnodix2hxsZRNd
7jTHKGPpZ2C1Mya1EOYyZjF3qe38FyC3CVAXhmdVKaqBJE+hE4WsrUqHEtiF
6JBN3UntQHtSTyZ6rFFG2f94VsA4IwH7hfFWqejV6qUSg23w8nBmRE7FcSmu
QOIDnsFctDFt+dKp2ViGfLHXztyd0qFW5wQMyW9cbmMTlw4RlACp7ARj07J1
PccKpLMTco5R4KqkE9hpuQxsx2Q/MFzJuVC2iWvmLYlm9hQr75Y0+KMcszQI
5+hHXO5YscFmK86rsypuDa6M52fDcqt5QneMt6Gtg0ooVpGN/HWVJNVwjVQa
oioWvQP6LsxKI8lzBm2SoiK6atHxy9W5kBBeYPUclE23ik79GLepI4o5Z8UO
rHA8kT7TRlFtXGuT6eXWDNoUseEZ3dgMlByjygdRMbL1fR0bHXD4raIB16V5
y6kxtDGI5chgS4KHuOlQ+pRX1QlWddGiWKYLqBIjOugwDn5LU/HqW44iM4Hm
Nn1rRlNNwZroR9PCBHXZIhYk/jfCHyOsVGkJVuXX5TQk5UQxoObPcEh0RFvD
DsM+HadC5aWL8Wpj2KCP8SJgQOnOklv1vKa5fRWy8AYweOHNfYMnXdx3Bc9l
WEWCNSKy/hakRkqaLAorjmJD/4kBFdZ38mI4ZPoMLuNiEk6liK8PHrPyKTco
cclkWmhSQqxZfhq+RCDN494iLifQvfEjq0r0uhGWFuh1A60qz23sww4ZdC+H
bfSO3huyAY7V8VzpvAKKK2Oshl1Ri1xtCc1xSXxD+dmk98wkpKJILW3gXZ8y
5nO/aVnmanMwe6bGr2og38gLnkzYytzd2NwhE710J2eLRH3/rSWb1MogpyoB
9s6hpEXpbybdHPO/yFw+MYlcTj6YzP+yk70ylcaXl8LF3fwD1yPshkDyX5yk
bmcU0yXOhu+Q6vEcVe747Y8qycpU97D6UQkAqovnVDR4+mSn1ASrpJU/elL9
CK/T5KlQF7iiHcCjl8AtaKkkuEr24gc41dEmvZeXX71O71mLKxazwl+bZck+
dtyne+x8/2Yy3k/yfey1X82Qw84y61OlTj7DhFNO7CylX36gM6Vsrj59Rh/q
vZfHzjVMSsQ0xcay+7LKhl1igyDC0g2PH1vZlPue1EcZDlCT/cgj/K1J4f5D
cIECN/URV2+HbdCC1rBIv68yP4FLwUN9rvu1BsfNX6LLfSH+XZX+wltZLJT0
LsoIlg4M//h69Jic049lYVro9hpshn3x71hUukj36dsfVPvvWtxMocNT5t78
qCG4Ted5qaJ9ZSxPuf/qYNyo87xc2b8yWqm2f3UkatB57lbxrwxTLUpfHamm
Hv13tCtWbhHvjJ1fqgytcqUmU15Gt+W5dTUMUxeKg+rYX2OlgwDxydG450vS
LtWCKSzWSRO1K5mb3NVb82TdKK52bbkn7u90Wy/n0JarzHTkFhym09ssHl0V
ot1fx6JnO/RGBXDrLC/0/Slev2NQk8wJi7kujCBXDtUl02FEqFAApQegsmhY
jDrKo4zzz6jP22gQ52zEqAJZFHYD55Z0lvUjdi2CrszIlzLJ2Z/AnUGO4B/p
jJw2ugYTWVBTDBYsUBFOZ1k+C5MCtkeXbMJKSZQcb8Kf+oRQLqBgVzVhb+hb
rIGiFvr8/AhYljugz2VI19xW5tp2p69QYPD3iOuAitfRCFD/Bqkqp+Cwt3T3
zXEU1PxIplbLDm0lTujhjygyokRCTT6JdYVSImClJVRtCae+TI6RThQPplLg
n9F1GnWn1cLHcZFH4yEJ6+EMNnBMYONdfj/KzVx25YdHWPHh0Qb/i/Ub8HdV
+QF/p4IP+hceQjbjog/mN9Nd13rAP0vlHx5t8CCPTg7+8oh9v49UDYhHS9SA
oEHKhSBEb1u0ERVYBmKdf8UiEOveGhAae7disUIQIKpaWtV19j11Ajx6Tqst
7GppLvhL9Se3hSrZM3AiUyUBTGeXquoqNeCx2DUdkqu/fQsLCEB5wxF8EN6i
S1kPiWIh6O7C/6RZUBa3KHC5zgop28Fag6GAi9UxK2QjnJCXtmJ1SuugBEgv
6O4Fva16QI7xjAA4lPzQBArankuB8viblvhGHOtADPjrMVlQKvTGrhVQD6Ia
W59VmoBEwxofqDCea/LmqreMrFiZQMXKyO4UMrPhBFKgzHkL0hNws9FSipYr
P0qjWrR7m4+xgP/6vljkSQE1iPdlAb2DFororEpIwmtbiSTBMX02+p7JL6r4
A8QcqqPemmpWxt3q2CO06VHmYu9+0FePvyYMDlbH4NEDYlAPsCgFOjjsAQ67
j7Eo77I49L3z4Ueh5fm4Aw5f6lHmIRFPwLVILMXqxYlEqx7CGwr3hSBVo7Qc
hFEv/uwgDqdQyD2LQYeRa9Elv/88wpCQttlNShRYxmUjFVL3kuPq84lF1eAT
i0eN0XI0ST0Z1tar+Sxk6KO/lZm2jmfL5EfI6nW7o6tfXQIsY7GRAHsy1uCL
ocHPplYIbTt3ROfOV2xa2NzcuRs22ZH+FZuS1zend8QnxmL9K2O0ZEJWNQ1W
+p3h5cs0iyg291mdAjLmY70a8huuctbdqYc7KnCpjakBrGafMSauYZ99uNA1
3Op1rrXkZeu24c887XwXM3slI/s+SG5RZW0huWHj9SYstrvL7MLXQ45oquO3
ENX7I1j+xWk6vx75NVMTuhfTUo34/lemZCsxtkK3Yo2w7yQUlhJpvbt59Ob8
T+4Gml7Nzijs2D5SWbvovn1zhf3Pr+JhIf4U3dJdmBmtxsb5aVUAqGP7p1k4
yOhRh9WmP3oTrAyB6ts+wgsAJ3/VgKWbr4adg5O9lWDbg56ivYePyl/ieyYW
nuiJ1QKzwU70WOsN6FkVBNXXgqIJUQYuPcR8+GCC3u5q5EM92/D/e0HRilDo
zjYgi2FJLIemrc1V0QQ92/D/e0HTilDozjYgD0FMu9urYgl6tuH/94KlFaHQ
nW1A7gdLRq9E83x0z1095C8jLBuvWEzYq8lGAcBWskWiBU7H6kW+OlBE+1UA
EK93miwQZQg8fbIj3m92utIW6KIt0PgyqR6i8h5pp4ZE8hm+cLHaWs+xb8NK
z5daKZg873voIO4+eYwPni681kWeY61bfpKuuPbTFAmvDqn9VTFahHFGiQ0N
WD2cj9YDOLDfiAMM91AYpshHxDBYlt2n0rIsP2+tR9B1IOoQtyrezqZR0rC4
M1qbznWY5TJ4Vg/wPM2jDczanw2uZllM0RE/pn00dkdX0US0nx/+uI5b04if
wzFV+untdrY722UsbSHPof3dQyxtrpfewtajeJ/DfmbMed6EF/c6fN12rEpw
h2mCnqCEUsipIDtTV6nAHWbm4WlFGALVY8ylVAoJ49wFzPrD9DndeZDOMN47
upEPLp4fBQRFb3NvgyJwfgwnE34RcxB1dDdLwVhZ/OXyZX25yzuPFeY5zzGm
eBc9BtefE0fnP0InkBbhgN+sczHzifjtWXWNPPjRPZNpZRrFEzsPR7AmSsZU
719U9euCQxyQOK9evxykUrZfwaM3UbVcU4F8Tzo9LkFvjuN7uJNbpIcRB709
KX0/AvpcPrQWFpy+/WuwOd15VYotMC0aOfOCUgYSfFJtliW4/F+jLBVtGHXd
v3pVRkuPYVV1qyACmSPPBYyGNfdfVYnbDKMxs9XZ7OzamKE4efF+DzHDWntv
vU5ClTEDrND7rJhRMbrKvX2hnwT7OYFB0mzAz4shoOtluvJQ1kIofAIoLJHX
XZDY6xrq+sxUBKAsTERP7pGINr98ItokItr8Eono7OI1WEDB+eHqWGxEVpVw
zBFFvqOCFRJvKW8WaAjoWaHUi8ptK7QMlek6B7ouZjcLskb0AHSYDDnEH3E5
TGeZZ/bXIVpAMNtrn81dQ+G9xRRI8+a8PDs+7H3a3VGbYhlHendQ65/xm+NU
IQ61LW3KYY93YRvfJY6szm1eQW/xXTJd5XY9FMpNLKXv4Z56o8T7Eg/uSvMN
zt7TfVkfEnH5As1dTgQgX76ntqDsXk4k8d+hxFleBEM4ATctRhKPt0kjGR1w
dTGrMoAZg41ujlSPBib4i/NGwMr+5UC0rfUd6CnX5ftFIDpTONPljlj1TWVC
2sfpdZRjFbJBdDP/ImdV1Ncgv4p+kBSDdPIwuL+QOHRx5TyCoRtbqGKQxgtc
cz04dvDJwSIYpyEcyj4Jjpgt2W1goQQPtLrPVahe1shGERXbyOMBujaxUF2f
/BuJzJ6Abxl4c86Jk3eywB6X/cUyFlgJg3JzgQ8vzQu8+QJ35g+/BVgKNmAp
8VASgqrQOYIBU2GwJj2fzFBRbIjLaBQnsuowF7C0To/E1G75OzjNj2BvOM09
JZWBKEePn9PY8ICp80zZYNCVCue4ZfPqlO+Mnvv9DIgaRIsjqrL4JkyVsXoX
RJmj+O00CqZEVFRDu1ZZUhsu6KSuC6gD2R8WBAqqs5NzWgy9Tj7m19K9Go8n
z+W1eDCQxY2d3SlB2bgvmLOlJgQ2BoyhK4TBV7MINUv7l8c//lp35aLqfXPf
BwGoPXg+8V+nVEvPSgh4fpnDve+UjH22gKWzXMVjOYCpe1zxuZRdLlsqLxFr
7e6LVydvXp+Ls/M3L8WL5AprBRPv0duUfOzUKZ0akheMLMw/Ny9D1EpQuQ53
DIvUPBh1a/beAa9WLNBiRZnnom+bbV/KVdza3bIRGFy8sDUK5qtytQg5BnSz
IllqE4yF+6Is3rGs1yCPM+QwaW4QDXV+XMF/c6SpCjjhS7mk6O3WIguPMFzU
jEuLPzp95L5+ph4I8VTYUNykZVpH++YvmqsWPho+2nDLpJnwmroaezfzyz6a
UB/2Q5dGacPfHfgA/77A0h8xGyl8pnkEfHCVZpVFPTIvbpIUxwTg95H1bixX
xEKxSrOqAR6VwH3kKfdYjguupURZ/uN3nhehiLT/GYjUGATNVGpZtHUEavGv
XVl2LoliZdkSgcrOkhC5EiquHACR9GgBRJSoBvAT5KGHIKuUqMaoEmQ5LaqJ
ID9tps4DZYopkpShvf8zBae/OOkXJS0JxCo9liKuqQaqkp06yl6bt5XA/Eby
/eRhv59QwjImJjY5z5ak55MGeraqpuvFHdiRwHUkajX5VpwAaXqL7ZYpk4rO
1tCGP3T5X3bjnUe97O3HgjDKne2r6aDqzpDvy/Xy6ve/LLBkvIDsflwIKk+C
pXvkTOpdNFn/Qj4vS3WX7SMpyDpYzZjj26xyauoF3J3OVsXtXLu5LtjaL13F
kl2RKtAld7Il8MX1iR87z7ZbA9FyKbgmxHeo36NLAndEnQpm/HLYGEug39rr
VsDzUiyEUyG5eQcV/bq7qRfmr73hns+OzUsO4TX6my/kew4qdM9XUqWxdJi/
pIoIhxjjMsjg32CJFyVwECywgyVW8iuu4Q1UChM6m2rejrsb9TubKgtL8X6v
m6jIiRUvI/9RlcjDQldTZVYgbyhVbymJMEUO9oS66D5WRQf+j1Vhaq7OKJ2i
sieF7NHjeeTbkt4D65EhCS4/R/yVfBrIR0vWoNBJMkQ7A0DhJBxbUb5DfGUE
eXIQj9CV9lT5ivC/swQ/WgOTaa1R2ZbEOfA+dNkQTG5ke/U2d8j88qh3Deto
WVh3PbC+Wh7WVw6sPcwGsmAlprC1UpJ5oAw2n9lQDJ7/0O30kkk9KOWn4JCp
TukpuLe1T8HJvr4H4eapEao3KdpdPHZs9kBb0501Vj2K9AOpVPwuyVVf65wx
UK6die3asTW7KltL5fn1/Ydi4mF8mUVWoC2Xw5Phth7Fn2RBmgUJlhWzrb7E
5B8pWZhkz+y/o8lU5Xp9/ESYl7V73yXpdUI2PT6ZimBI4xO/ld1nCbXqeJgA
74Hs6HZeDcgQqQf0svEz1Kw7JpbF7xbG+HJqdq5MnnPYtHFE6uQlzrf2TJR/
ZO+P5cm2F5tsWxzOCnzVknKNMBaS56kbdss/LA+2ZT/lt+CAO00D7sA2J8Ff
MXRn+ZF3F8PArncOsoXBpEKiqUaN1E/6ZLFJn4jnoNKDY+DdhJ/a8K6mliNY
SHDZeUOJHsbUwm45Ob05hyMPrDEk09D1/TWc1WgED8doUBaUFCU5vYS8mAud
lABoyvD3oKCJ0YV2KnhkgtseXzOrEw58DTTCB7p9ikevk98iWOt2OpNQxTo4
unHwvFk10hR4w/i8EYoFMW46LI1yFxiJX47EVog1KJWdSpjl6y8c5PE4zfPF
cEwtHxbHDFdYFMDk8qjViHAEaSmEY4eVEF4D2UrYXxzl/PDtAgbVImhVL/n2
ozlYpVmXQiv1uANey6CthFZ7kEWQO7icLILaBjPVLICgnjRNtRQ+of0dsMnA
zMGhizw5iOzfjD2FqB0P9hr03M5qmmSICnuuottZUtHt3Jeis8Cr13RyjHr0
L6jq8sFyKO/5zoAYc7EISVejNfDB67In5HZK5hrDvy+2Ok/Fi6C3vWGfBvCw
98vjkx9/nevPwyr/Kuz6KabHhFg5u9+P8pwfGbvkIsOZYCd1OFbRju1XnSE0
XheBfK+7Ar7jIfEid1EWzQd3YE4/WuuYVdm8PpqBfouyam9vScLZW40bIqxT
ju8mzWXY3t6SHKtAujvLloD0sK0cYJ7QbOJaDt54pYreq+gN/ZiL7x2dD03U
ox+6kY8TAVjmbSJ1ecM0fstuHBPaw1ej1jM5VD4bv+hfpXHffk5M4d4bS8XX
H1TUnIrz/295NUPTqedhnBquFKPOD6U5xWEFRrOWglj4h5C7JjPKA4zZQ0LB
aurtTucx/0+Du2F15J+/r7klff++tr7mjF93VqQF/mc4jq2y5KaqNG4yrtIE
0RvKs4mV1mM3qZtsqWtlF8zaW2MXuGqULM272n2+C0HjZZgFhMLPR5sa+h46
6D8oHfTvlw4O59NB/2HoQG29C241oOX3QQjWkxpmY+gqrf7RMp/P5lOGrBiF
5pXk0bReiPOI1AZfnMDbI+X9WkyaSlntqYtfV0FDv99FsosfTdkQUdHvLCqg
iYlk8JpbVnEpXv1iBbYKTwUaKk3aWM6zPFYtd782hBF7n0UDwxXjINQNC4fl
lLC0wx+KzR3+F2iDr2EofEe9LPf7YHqf9CcC6H8qIvv02mAOkdVVKC+PdRci
SyZAY3EnAhrb7JorG/kzlNLGegiecpVxxayV1HW2avn7ILalNEw0/dzKRdPt
g4VD6hmWinB3Y9vVEEuFuHsyAzwK9Cpt0J+qHpRpupAaddBR1aZLn3xWOevI
ufi7nC4aSXZRxSjFqx8WYXXujPNTZ8XoDjcSHLKhK27qzlz4U3N+aYKGIFr9
HIM/C55lXEH4sbxYunj3rDWgl6nz2aXKJVp+7fjgs04f2rwLZnJCDUbN3BU3
5kFvs7Rqd0kaZUTWSWsCecnwxcoAjiBqqJ+qfvy7epdj49fj1wMoRxC2n1s3
NuoNfscb1UG9+ih5wAD4MYWUW0pEYoxwAKes8thSb8jXDTMfApttVK+B+ve1
0gNKJdu0JrLhwDycaQxTpFHHOC0NbQhTUYJX2VkLMw9F667EeY1lu/Gn0fBd
uCC1LRUAlBDkvALPKnRtUXoNtk5gEfSKPb31ewm2CPp/TYx63gFzhocHrPHh
yma1V+buwkf4mvhXMKmcaVZNHaSfUu66wR3tGCoyC9nDsF+kWXnDOHXA2St5
p9+z7/RrNqY3fyMO7Ge3Veyst674BlalIF3iPmNLtQTUdpqe5unuy1sK7ZVx
RPihSV3An5Nq5xhr54z7M5YITh5DTQ86tYtvywrQj+Rvatjld09S4c0DkRTl
aT/qiO++FSA3vVh95AxJdU2DSZTn4aikaE/Cm/Lu0fCXKCspIhOD+Omeh/Lr
Qe2721qltk4NHzwkyVdXsQTJVzvPI/lqjzqS9xJBHck7YB0P1aVsNNjwrbBm
n+wx1Jb5dolmwKu56iz2EC5Wmgb8vfLrx6rtRFUNlrp/PD87XfwC0rRW4DlV
MB7o8P31itGZCretengEsvt9u4v/hS8LD6WvyHLrYX7CjB5AjxP45Qvf1i/j
4GiE3x09jijmPqlIk7N89SFaP/fjQ2RcPIgP8auX0P356iX8HXgJvwhJ7fHC
1YvrY0s4h5eYef06vMUktXLkm6aMqrBucFvVvmfe6EvTMRhy3o9m9mkWp47X
TJ+Xdaijd8g3qh+cJUwNWYNOwjlX7TqS/e0zU/v4/PCo+dEL3OTtzS6cY7h0
WN3xxSIBMz4dUYI3WVqk/XRc2ew2HY3WHXR8OfbAyiE8VUvgAeJ0vkbo2EN/
jdD5GqEjkfY1Quf3FqHzOaJrVINPUG1M65b6UNZmd5t1B7eo001BVu7qMXzc
ImiSCeSHjbbHnQzh6gHNeuIplxNeumWBttyKnBtcKJouEOBj3d2UOa87D6m3
6sLB+ygr4lyyih5h8m1PMdckCpNcFTLKnBLhnmNWsuE+ZGG+Ic8xVR329Ap6
iDD1hR7BavHHHqJWT92ZbzJ9unpX3Ef+c4dgMjXEvQWTWfxmaqfQRtSym1VG
trR3alSF+oWC0y0Gm/gYbLIcgy1Yne3LIY5FhOBdA/30eK7JPc8t5sX4PHeY
3xVWJgWX2MpHQ6+HCeimmKHYU+UNja4s+5zK8hp/3kW3KhYicXR9w7jz4C4Z
P40jLWb44EKA481aFH7z0k4yelzTwuOc8pqs5fg/K0bHWV7urK/R21MA2Y0j
EEf2YJJRxnJRRlq4WKOZZkrDlJfod7nRmI2bUbvfzUGKixFqM0asjXQlZNMy
SyN4V13nzWsQY1+golncRWVUTaDryz14UNrXGK/PF+NldV61Orw9xtcQr68h
Xl9DvL6GeH0N8foa4uXyazXEy5vittLdRuW4ZR1x2WFb4xSed5tWKeNevVJz
7AHZcne66ZgEtceU+tALxxdbf4Vuk7XeAec+YLezueOaDrWvk61+/BYrnMCd
q0ZTXX/JvdEF+efsDLUr78tX9Lvotzlw4dteepMvLPhhUeXmZ8RZSketQisM
A7oMKwFR9Oj0ka00XqI6vAknIGs2pM8p5JsTWdG9dmPMGPbBAGZQ27EhU1Gc
L+fC10wM/XQ2HqCqQNOd9tyMcZxw8Wj0BmyY0jw0qvKd5FdqgIiWKt/VNIPA
ISqHOWFHuCi30bx5VBSqHrezl6BDNm2UljYL/xjnqSwkFOaLYjJOtE91LmHf
MYv3Tidin9qhF0H6EZBTFvRVJAI63xuuOwBPun+cU1XzZMAOz8vIuBh4S+RG
yN7OFFhp3wZAb80vnB1VmgcHZmqJbvCGJy64nLw5TedX4VjdX+CTB7MR+lgi
zSHI3Sg7AVCsESVH4af5igg4i14ohLaK57EMWIb168Wf34T4EitdOIDmggXn
fFfAL2GUgZUDcAn18S3Brpd3HnHheMnNNA2VTW8omE7l3mV/gHc2jhTZYcH2
ukptkugWKBlfKRavR7CLxn+5BeOlRFCEoOQWUYjxI4LFkbvoIVLjj4sNKujG
Bn8kb5T4LVQcwzXu7afMNQHTjZWSRFYwSJoMY7DwQLg0P364kCfTwOED4VHO
4JrZ3U72Cwz4Q25K/Cxw4vh8IJcclz2va4EXMdZ+ZAVrI4jq9MpgVEP/5HMN
H1wnpZR/eGrd3NmpjRhwgDs+qupeD2z+46S8tihhsA5ZeBBLBiGcvW5hhpnz
Ta0v+1hTH8gVgJJBrQJIuko/AFM6AWKDjfKDGcCY1FHWx7Nln+vkJRe9eu7E
9WmTV9N5ycbjvO6nk0mKClc2c4GY0wuEJbNs3W4SdJ4hS5Aa3pnftn4Dm7aK
tgtpHawN0mTKjMjVLbQH+5WwXVr7XAytitkFcCvwUQgQq40Ia9oLVxfX7UJT
q4fCfwONL4gaewXmYYmSTlkMVMwGceR5KB+XN484ga50ce8ZxKOKqgJCLbym
fxUVbui80hTlR448K5byWdlVvgagdNFyWtOJPfA/Vxs9rqof8/PRtwh0QjkD
rnknFuKPYs2d629yrm/7swwMpaK9/o/GzrasKwe4qZ/mbccfWU+Wnv9ByU1x
YEQEpYe78poB3A23LOa1Z+WLO/zxIW0elPrKUMJJFXyRthaDcUGSrCXAKsg+
klxEmOPP/2yq9GDhAWjTo75WIM+Hps6Vobw7iZYVZ1lDNGpZRyHa+hWbYbQg
rLWqX1veZmSWtux5PDZ/ywdF6ZzUUi3mugccH4LvbcPal1kqjxfy6RvPWqNZ
CNMVUcQ+BTp4y9QI7Tw6LvQdBKh4+0lD8vbQQ4bkTieXuL5DeR4cnfd/CW6L
X9vv1+WZXWpgwLFlO+AJDs0R7J5oDSqJjVeQRX18HHGg7vuN49CHCH2E8VjN
Cx8MvUir9enUS0mfO4df7kkGaPqZl/p4WxyWsYfNrUsffoLPQUTNk38SF+Vv
l0YHN+R3rewXI/Fww9DoeA3DWrYeMy9C5qJ9cLxeIxsYLVUHcfMzlWqV/kZL
L3b+U5Z1VmMjkUwjaFvcBhy3WEseB9JEtsJOlO/37Pz0rRpGhj8q35+CQcYI
43zqtTXdg55lEu1O1BltiMOjDfHmBP9z9Hq949CSD1Bv/fnad27wx/fWjdlV
3dmqU2++Kz/b4t88/2m/1s/jYC/M87Qfh9pVSVHTMrhIXSLr7sY7JqSDCiQS
ieimx5tQXOohliqP76Me33nORz1GsDqeX7U2kKta7TraWOHU95in7Wklf73U
Z7kT7WfJdDObHEO/x2kwOY4nuMnslrX9wu1JnNBm0U01Eane8BuiW/r46PWG
+EndtdNgnBG2bt7iTaTzYlg685WFLhndjkZq6Y0nwJzcgDEocjyeATaCyxiQ
WCyRHmn6lml+YfH0HBCFkz4e02OIKT94yhJC4ZnXEgJr5PRKoeeWxNBm2U6Q
mQVPOr3OZlUUe5dsP6ltHtOEpo9htNXcskBxea5na+vsMkz/6a7XLlgP4i7c
WgBGa+BTSAHRdDAAWr0V7nIqz73JFU3z5deiwkiO5OtLRUz5MzC14KlpJbH0
MrKvFP7SA4zDxJMbi4voX2UpRiH0YTn6sUD/Oiw69Mvlj+WFPtbPj66wVnyR
ZlrQTTD8OpvIEBsNsLAAbh8eWSF8aeLIV5S3b28CfhnGkC6dSXSfdnYTwHc6
yoJarxOrx5jpTBcQiOaU/LtGBuVVrjBrMU8B73a2l38KeO5jwIjzL/t2hwR7
fxAonaloCG8w4GPSXkuTyNlUSt46TRyqq3ZDOLp3PQGxKtWPr8Zmxqb9t66m
ScspVYYNQNMQvh2zoQ/oudSlJ4ysMdeKw1nCdOP0+1YM205SORdeGJRsrDrx
U8OXtbdGNdcgNdF5KG0PNWaPXMxWS2KSBezYiF+5qImLlLiGLmGmjifkf3oA
sX3vMtuGWriuE5sHwUpbX0l4P5D01ibN7q58t7qH71YfXoX4kleUAaPH/Zz9
W2aBhoNQF1vrQ09TlOTIVDnbkEO9TL63tlhSNmVlXsGfNayRPl/ZhETvdOLX
Nvj5Z1A3TXsnSf4B9A6Me7+KBwEtaR6N0Ps6y1cF0D0qpzf2PiAPOErKXd5X
LXWPWorjrnAs623jynvB6qHCe/LVLKOQNICGZAjSNnq1viR99JXCWMAPxn4B
D59/OgFvjpt+YrJpiKDauGcJf/T6niW89OFKDiAJrzBalvDVd77vSVLfkW8t
pH+V5vchzXVhjIDCV1miL1XMzfRb2Vl5oofg2SgAR2X22oGccaKdyYYmkCfk
RZHHBRYnAXGCe+2X6AufygvlS8CtfNCG8VOEstvpiWRiv918CTtLmVEmeyzW
ZwPJ4ndwYqHooH6U93VyfBqwZxz+iJN+BsDZ4ozDWFNy0gaUDwg0kuZF8PIF
UGIUDXIZMh7dYCWfaFDFqg8Mn+K3XmBfyq2rSk7wwCTtwtzCCvIj33zpKzO8
vzBCFxhJ7bwLPUrY7MaF3KtsKo0eTPNoMqB5zDaZHfWhu1F3MN7uVXuU8VFW
JX58+fWKRRZeBrzHU8FbhVx6z3xxnVESIT+Vk3YbbwDmXEk6oc8oQ36Sg4MI
QB4srkB0XKVjD+MZcX0ZzgZB9Y6l+iq5513yGsfQ88HyIvC5BqNJaBsiUFeB
ltC2MpDMaDKrDSGzb66BWG8nl+mY7rbw+tRoH/7INMTyV9QW9zfDC6uUQjlN
i+lszLuvvu1Y3Y8LnVnHyhl4a4AOIWAQObClgq7w7AuGCd8nUW5Uka8DweLF
IUepmNaEnEmc08l0Eg1iO83WghVPEvy8OiWrmDZy0UDVcj6kHaFu+jwXQVk6
HgfpcLg8rWwbLjPn+16FjeaRuSEYOmspcCTdty8jMLVIHMqMM8rh6SLqeta9
jw6zyMVVei2PbbB8iYX8KsRYgZt+5GRhQCtkFqKPjjgeftulhBIMLYPpAbGT
UKYe1vSBLj0mb7m7NEPu7upO93+p60bdExmaa0fHFLsm7B+fmFGVirwpwKbm
zOjq1xXUqpNUpzK9c6dOhMobHMhrSMtgVqVAqOyiLEJkV4XDtV+nsC+TdBQl
UTrLxdnFuZUZ2OYsravwvZQV4cTczPZLLleAkWfiVD+LPPWMGB3Uv+J4m5gQ
f0thYmRmD8CQuSkokAHxTycvZ3cpkk2ZE4NZpCoAgmKZkBU3Dqf2midSedoa
Cnc1o6lGY+AWrC5nlLIVV3CF5cYcrEgCnFHuI4W88gMErn85SkZUo6xcsEzt
FoqjMLHKtFh7U8GYTh7FXQoH/xUiagkYz+23UTPDqL/ccUB1WFZCrB3o6oCg
A6sg4bgo3FbUeXs+Oea7JJkLJ0BnAPHDqRX454PTZnwFjPR0PX8BRwO0oJkh
0eKwtCYICdwDrKqYZmCaFlwyxJOPDfIKzzVBCqep2uPVUmY/GZ2qBCuqA3ne
08cnTcOsQQsDeK6KjoJwnkmfL9eBdbijnBhdzybqCMIZzpEItjrdwXM+j+k8
ayNSJEB4TtdiZDjLMJBVVq9cbPp1c5YEuVY6B4rz3BhLlvkfqb1gDMbWUWkg
s2qVoHVQqYeAEyscWH8QvadbnSfi4sdfVe3luVUBzo5fBtvd7l/fBt1ep7uP
XhHORGSb7GCURfSnoEaemM1ZAZbAfRMSRW6pTZpG4Ttng/h0JM0yVASjrOzw
wwYAGkp4h+DM/tqkVrMpuqHlCZAwyU0mzFB6NJ7LgFALu+Qbnf2cmjZqQIcZ
cH01EFjYXYY09BgwQyNpPCRlFKVrBnl01JaJz99A+74Sxbj04fX3MlVYAFjn
TxZZIVtTlYZKAv2ZpMlf/J7lxpuBuyLTwWT+Lrp+uFA2xOafg78InAULNfXH
s4H0Pcq3xWVEa+nexYuUmgvVIh1HGZk+HCD6MCLqo5Nz4WZ8tKyo2wUSQOtj
cQ85jtuKLCX3DNbLqE9BVMhqSN/We8/JWp87HtVOPyeVvkB8qqVd3UDVxpwh
ywZ/a5W6UC4yzKVSPjkdY61RbdeydiL87bwLmY2VJv5l3EcYrUt6CxBYbfWQ
YoZOUq51OSfdRDIi95DmZ3sYgMkC9mIASgj/sSqsrDsJAXR+ZbvGlEetO8EW
5gRbf1qdwplwElECnFX9wZx/3EeaCutdp6JmOTWBvp8IbKnF7wK2pR7dPZYJ
Wd4ao/Xeg+UXYYNoLQSo36yCIbchiTojrEG/ufOK7Qd86KNnmZZVkq8jYZ/g
1Wniq0hZSjfzi9GWlHAyK28OVy0jDFflNu5PPus6aDyUUvbMo8v5Tpc1LM4V
G4KROZ0p80jFqcfqSSWvYVeCJ7y5F3gkfy0Gj1GQ1auLe0YQPSm5OH6q4Nwv
fpYHp0iL8N6AMWygYgGyG6sk53WpEIMqdO454bCLXiYQotOC1DJWpKTHs9QJ
3jGLapWrFiI+CWMzG0nGBk2KMLO00TKUa2olVh6KHk5lLZEbE+0LNk156Saf
UiU/tzT/eyAz7RnIZ42tsygcIMJM24/zll6eYB4WNPgPhYmHTLW6v7SqKuVa
xeSKSrG7qnlqLV8P8YkN0hrZXSMKysF+9Rf9XFlBe9u0Y4+G8iVO6v52BuWi
iZPVnUAg7N4nP59fiNOzC31Pfq2L3jmbpAcwe1MvYlCeWXvolCYzFgm+tZhy
ua15jOjy7kLCCLsERCYPyoxl5bUggSwXHVIiGjeA4t6JZp5KfMgl0jQLLJDX
ZR1dV1xglW4N3SxJtmCUIhVYLWvJ9I2hSH6d7DbKuqKNr0HiUky9zXVxMWNr
wCE684BYEOYodIlWF9UB3t4N2kCsWWU+D8bjVFYvOImKq9SO2ShVktYHsHln
cSeV2i5VO9ZhPcCR8NtlOsOCl8jFsrM5kskDBWfEhuTcXa/IP3eq8x/Pfn59
5Eg/untEANB55zxaoiQEXyLJrpfmBb1Zrmq9cpXYibraj5O8AJpys6WJaZY5
fi+Z1s+YMxMQ5lBFs+7WjUv48/A+YX45UFWNfizRX1qpXZy/rjQ/LYA33Ezr
rfiuacTq7XnH++NqOCyDsAIOGzkiwBu/at2OuRwSYZ1eGY5RZjJFjTogm8Jn
xyRgAi51wVF4dg0P9YKdijsMKSAQJagahA4eGCrpsIjy+BeyOi3FJEoOTJ3o
YSsGfJ2DGXXXEvZyh0/KGItLN8xuhn3tTlo4lrZrI937HoJyPR+1M5Xlkbl2
5hI/LlocxNDBzqJafoLJBaCOsjCkIjCVqJdwDBkFJLoqMsMMY5VSvlRFBFRj
K4LDfR47T7IAaDQL4eycjcquBfvOU93585V/VQVxsfhu4/4ewGIGg1hVruAZ
GW74nOlVlYkhR0eJe20tT0ZD/yrqv1OyPMqLeEKXpdom8T1fjVeN7Vfw3/V6
7qc9shhluS1yqliX9oAOnLpatJnC2Ra9kmB0b9fOakwLOYgJVdrWgc6jWgxI
UTr+TGAZzTHAa/EBxyHQ1nNC6zge+tSigR0VUF48BPg88nKrCIF0RuRMmqZg
3KGXyHpuVr+iF45TSUoYlma6l3fqY+tj67/hp/VhX/wBlkB5FlyGE6zLcfTt
miLFC1IulEjChcHXWnk6y/oRxQ4BX74Dc/fbNdS8a8L6JoH5v12rqKkfNrub
O0F3M9jc6eCca8BMf8CM4Bk52A9lNBrfJLdapCHVWV6WDRnjXg4LVbxYFVZ3
How91w/GPmnBZn/48P1xcNQhaJKogFGCbNjf2+4+uYzzjx87OFEkqtCu2QvX
JmwoBphSQ7DIuL28BdODya3L1GNeUI7y9X0c0iDBJWUvgK0CVtFEKtci7afj
fIMjAMO8dfri4vDs9CXC+/bl4e7mdu/jR7I63744t7/Z6253AWw89YPy8Q7f
0sOLdm9dhiumKPOxsjPiW1chywpBi25JHX9+/qOcZ3tzZ/Pjxw1x8fpczby9
vYufAFCtn34+PpQfP+12ASBOHGxv8nQtOd1kRvlB4Qy2KylkjTSJcvmAAO47
ncXlVTYhDz8ssnQsc5fapweHJ+sw378hGFuIGlzj+3ig7qX4od4Uw1RAxPYL
uQmcmR6C6MTXjzKhkJxmLY1WgJOLPoZYrd3yDOSzS1UBGHjPvPzrG0Rh3NRc
4vR5tDtg5XLJfoqSk8jjHQj5Da5gxphWyiZXW57QNRGGiZaeR8gidSHEWXpU
159n485qamgRF/gauxikEZ+ioxuQLVj48JYJnCehfH+c6Ro4FNe+Uf5WGVbW
GRsf4YGGgPi3bw7zTusgJxqn9xWwNmKGS7AVfK4kQJznM7eoVlFCGk2JRqtc
solgBQyf8FJ1+TqiDI0+/hhnNwY1O8UGaX9GbCMfBpGm5a2UyRnQFJbro3qU
CtS+I6w6KMiOD04PKkKMPqSIJbD5clmYbDYdqGwDU1Yyi0YxGmks7vggtJaA
GJJf3LasaMK14xcXL8WfT16Lt/LbNVlqiXlya3dvD8QHMYRylzpr3W+xDmAV
8fPb430xy5J9lIL75FzL928m4/0k30dJvV+RjrKjnD0EkUY1qPvFPvsjj1+c
v1JHdQBzX5w+Pngmg2UUJmBWuvxIaCGoNOjFxg5D5kcdI0PKf4M8m0YUiugz
pglxioMbVEpJstvdBMnl4JU6GV+O1YXQ23HQhqPuV49j8tsTtLdDojRgOFzN
9+LU6kmLXQ3tb2BX45t9fAbU3Q251/uUkfln+JG4/E4mccaYqnCaFtDizRhz
6nROJzY2FQLthM7cKDeHhKxUT5PnCQgKgkBchv13LTIwyLgosigiZY+kAbbw
dAzYFedglk9CcQFfKnUP5yWQaPGNejcj13YR9cBx1HHPNVKMVu7QIyhSY22h
rrSrtoOOtGMYVXYNPaJC0NFAXGVziDkwsPNkHCbyaQSQEdcJiKCQSTCLR1eF
siur8gJvMCTNACL7cRyALpIy2Uc59uHiejApvyvOqZd/BAS36bk17LT+vTL1
4PP9NoWnBQPorB+L+4274GdB8j3ZqfSr06/v6dE3PfrVHubZN/tZOuwnX0bC
jvLXunVFU2tJQM3Lr+o6x8BzHLP09hyBbblM566WRuovO5IfCzcaC75n8b73
j+dirz/kiUs/c/sRVqs96X0x/zZcpdM7EZb8qubNdTPMb2YwbrvuflOlU+vH
JVlrKLooL40k12K9m87dv6mOtAjxV36W4ob2XMRYw5QQ40BksZX1YzisrsfE
22Pi9rih2RG+6uQ3Li7ljN+Iv8nf/lHpIRoEQUPLiWk58SDH3Wr7u/Lz7pU2
3ma1K3D7zFmEp3FpHR6eM+92G9bTnOcVONhimsUpmp+8oYql7ZlH1otuxALe
l1lrBBB28L6/+72arrfrtPU9B+u2NUtH6bq8OmtWZPNYWZRZWTOuD67F5KBX
Aj6o7KsVfS67zhd9S6Or8lPFn+cl+hqKnkvQVRVl08yipsLSRsJCNoJYwEZw
B2p6frdC/80WkzWCK8DmDLCISKpA53LBXMKuIemF9dUymsqjo5bRTovopUU0
kl8XzdVCy+mfBTXPChv8L6d6vO9f89qXt9OXt9BXsM3r3kbRG5al5QdW/s3C
TuVbIDT5DtA/XIqFlvILv6FLP/wUSqVjG3uuV2h8vy3j8LxGLIJmv1dSmtb5
rqa/J1bymzrcV3vXBuWXm+se3qSQ733tlQZ2QigaBvalbdzHwPPzKryziMos
I88scgpPvLnaSx0+tnDf8GbRvr4499X7LjVvKYLcUG5NX+IFT5pTHV80v44o
LN2EjUsP3dh8VP6uYRT/QzJV6hCGQGr61E+yKr+KpVlWLM+1Ygn+Esvz7qrD
r8LBYgkmFnfj44bui7CUuBs3N3RfdvaVeNrJovW6I7K09hW2UrPFaFvDvjht
6y4LEF95+AVo+w7DL03bur/6aaBt/lmZtpu7z6Uuu/sKtN3cfdnZl6Vtu3vj
g4PlxvXvun5T00/tZUDxpHOeyVxwbo/6rJte/Sw6vf85QscYL9u0ZUO26QU9
e6AGve5V6816XDSpa/97bTYw7vtoQvCraK26x7rsrh6lXzlheA5K0LOutf1j
nQeNyCo/dVS5QVAFIkr9fK8LfT+nn3ksBo5W6nUTPlv9ZrXRiPMM9NtcLNtA
Nr2p8X0NkNYjAwClroRfAtNUyL9vMEtF1fGnWkvdhtfUzEZ4VV3nMry63rP8
MWMuCXBt3WBr9/00quqyNhFpnmRWD1/503JvVy7XqAGDIH+10hK2akqaVmar
x5r+qey3VVO0DhE+svTU/6x012XGbFTIiotNSPf18xQlrAxRtSjKsKqacNXZ
/STi1HqrAdkHrVN7bYl+diWzOgy5JFkuW+Xr5faYV84IR7CKGNmsXa7d45nM
ppVlyobMUTvfVLZoboEG4xf1W9plyKu2r3JRrtp3ARtZVKm2Nh/cRlHjiWPO
EWM+8HMOEUsMsBoKlrf9lzX2l7XulzXnl7Pf52b5G1quMcl87uoyNr4vTexR
3uUFLtbFWuP3leVZXZbJ6H/oFS+e1Lw/Bz/LIqcRmkquqsGDNzu06cbSzVCy
EFrKcayVX+UMQ0/DRVPorDvOSuYYrsE9C5QbqRPgwtCvsIByppZ1rVbOm6Kj
YZJVepsEH5tm3PweS3i6armac/N9czMrvUUBVE0IkTGb+JksDR5gwgRGcR7K
UuFUExRDRZ92n27JCM73sshdOBhgeuG1E9augys5tt0OzuaMrkeVkMhHdmyv
DKM3cb84AX1vZuF0h0usVegki/mGloGYrZYMeuhfgYXIdl7LvubzfLI73dwZ
XcFn5uwAfxy9Of+TgH9/gn/pz0D+9tPByZ78gH+Df4Bq1Sf0K/y7tSn0Z/w7
/AJ2nvqMflWmKPw6Qru0hfffRK70e5LiL9g376vf9Ef6E0s2lv4MTt/+Ndic
7rzyfX528XPP93mvW9d8s/z52cXr7c52cH5Y/uLl2fFhT3/jT4jH5ccZEO8w
LgJvE2gBnD9IJ/6vadIozPFQiqlhDa1YXNBstY2knGhuhJulFDmGEcNH/Jcq
hgpH5STHtALcIXlU4Zc0YBNBHlJp94DDYfK+86F9uQ1f1fGH4bwV+ePccWgF
4qzGrwTflP1UQUl0BiWrLSAJRP/Vig23+RItP6ZzczawfrcaMzpHIH6dPyot
yEsQ+NwQgXNycf6qtEHTK/BoYwPbjv273T8f8H/1Z3UbZkTjavvliR4vfRpN
nQ+uUvdvEybSCmoDEnDXSoThu8YMXLcC/O1ejwQLlYesHIvM2SUoH3nMJxWL
2P9V2Yr0t3LtO4SobHW1qiZI1XIpmTiIn5INoT4yhgGpYs7JiAbfrlHeKWdQ
HvSxBso4Gowo6ZxJClPu1BuuSC6YasclDTFLCF+Kw4/jTOQxnNwzSq1K3pEi
fpvCHEXrl3hcgCJXyaksRlJ67CKL3sdAqDR2Kg4GWRwm4iUILlls/ALsgjcR
SCjVO84ImwTeYJapnGdOo8QeOqlkgC87pdOJSpqzE06uwxwTQwD3ujjHO9iG
AZVF+v+Q53D8t6IBAA==

-->

</rfc>

